Вот различия между.NET C# константа , только для чтения и статичный только для чтения поля (от эта статья ).
Константы :
- Статичный значением по умолчанию
- Должен иметь значение времени компиляции (т.е.: Вы можете иметь + "B", но не можете иметь вызовов метода)
- , Может использоваться в атрибутах
- , копируются в каждый блок, который использует их (каждый блок добирается, локальная копия значений)
- Мог быть объявлен в функциях
поля экземпляра Только для чтения :
- оценены, когда экземпляр создается
- , Должен иметь установленное значение к тому времени, когда конструктор выходит
Статические поля только для чтения :
- оценены, когда выполнение кода поражает ссылку класса (т.е.: новый экземпляр создается, или статический метод выполняется)
- , Должно быть, оценил значение к тому времени, когда статический конструктор сделан
- , Вы действительно не хотите помещать ThreadStaticAttribute на них (так как статический конструктор будет выполняться в одном потоке только, и это будет установленное значение для своего потока; все другие потоки будут иметь это значение неинициализированным)
задан yumaikas 26 February 2013 в 22:06
поделиться