locked
Какая разница между const и static readonly? RRS feed

  • Общие обсуждения

  • Разница заключается в том, что значение поля static readonly устанавливается в момент выполнения программы, в связи с этим поле может иметь разные значения для различных запусков приложения. Значение же поля объявленного с модификатором const устанавливается неизменным во время компиляции приложения.

    Для ссылочных типов, в обоих случаях (static и экземпляр) модификатор readonly только предотвращает вас от присваивания новой ссылки полю. Сам объект по ссылки может изменяться как угодно.

    class Program
      {
        public static readonly Test test = new Test();
    
        static void Main(string[] args)
        {
          test.Name = "Program";
          test = new Test(); // Error: A static readonly field cannot be assigned to (except in a static constructor or a variable initializer) 
        }
      }
    
      class Test
      {
        public string Name;
      }
    
    

     


    Для связи [mail]
    31 января 2011 г. 14:36