2014-01-29 3 views
-2

Безопасно ли (или мы можем) получить доступ к любой объявленной переменной типа значения внутри деструктора класса C#?Доступ к глобальной переменной типа значений из деструктора в C#

Спасибо

public class User 
{ 


    int _internalUserAccountNumber; 

    public User() 
    { 
     _internalUserAccountNumber = InternalUtil.GenerateNewId(); 
    } 

    /* 
    * some methods... 
    * 
    */ 

    ~User() 
    { 
     //For some reason I want to make use of the _internalUserAccountNumber variable; 
     //say print out the value before the destruction of the object for example (or could be in a logging issue) 
     Debug.WriteLine("Internal Id : {0}.", _internalUserAccountNumber); 
    } 

} 

Внутри destructor это то, что я пытаюсь сделать. Это безопасно ?

+0

Пожалуйста, покажите нам, чего вы пытаетесь достичь. – dcastro

+0

В глобальном масштабе, как в 'static'? – Styxxy

+1

Глобально объявленный тип значения в C#? Деструктор в C#? Может быть, вы должны опубликовать пример, поскольку ваша терминология не совсем ясна. – Gigi

ответ

0

Да, вы можете получить к ним доступ из финализатора (я думаю, это то, что вы подразумеваете под деструктором). Однако вам нужно убедиться, что какие-либо ссылочные типы не были очищены раньше, или вы получите некоторые неприятные исключения.

За исключением фактического выполнения очистки, я не думаю, что финализатору, как правило, необходимо получить доступ к переменным-членам.

Смежные вопросы