Erro do compilador C3893
'var': o uso l-value do membro de dados initonly só é permitido em um construtor de instância da classe 'type_name'
Os membros de dados estáticos initonly só podem ter seu endereço usado em um construtor estático.
Os membros de dados initonly de instância (não estáticos) só podem ter seu endereço usado em construtores de instância (não estáticos).
A amostra a seguir gera 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
}