Udostępnij za pośrednictwem


Błąd kompilatora C3893

"var" : użycie wartości l elementu członkowskiego danych initonly jest dozwolone tylko w konstruktorze wystąpienia klasy "type_name"

Statyczne elementy członkowskie danych mogą mieć tylko adres pobrany w konstruktorze statycznym.

Wystąpienia (niestatyczne) niestacjonalicznie składowe danych mogą mieć tylko adres używany w konstruktorach wystąpień (niestacjonanych).

Poniższy przykład generuje kod C3893:

// C3893.cpp
// compile with: /clr
ref struct Y1 {
   Y1() : data_var(0) {
      int% i = data_var;   // OK
   }
   initonly int data_var;
};

int main(){
   Y1^ y= gcnew Y1;
   int% i = y->data_var;   // C3893
}