編譯器警告 C4972
直接修改或將 Unbox 作業的結果視為左值,將無法驗證
對實值類型的控制代碼取值 (也稱為 Unboxing),然後指派給它,這個作業無法驗證。
如需詳細資訊,請參閱 Boxing中定義的介面的私用 C++ 專屬實作。
範例
下列範例會產生 C4972。
// C4972.cpp
// compile with: /clr:safe
using namespace System;
ref struct R {
int ^ p; // a value type
};
int main() {
R ^ r = gcnew R;
*(r->p) = 10; // C4972
// OK
r->p = 10;
Console::WriteLine( r->p );
Console::WriteLine( *(r->p) );
}