DateTime

john2007
Дата: 02.07.2014 17:09:06
Подскажите, зачем структуру DateTime сделали неизменяемой?
Изопропил
Дата: 02.07.2014 17:27:37
ушёл за попкорном
hVostt
Дата: 02.07.2014 17:47:20
john2007
Подскажите, зачем структуру DateTime сделали неизменяемой?


var dateTime = new DateTime(2014, 2, 1);
dateTime.Day = 30;

var dateTime = new DateTime(2014, 1, 30);
dateTime.Month = 2;
hVostt
Дата: 02.07.2014 17:49:19
Изопропил
ушёл за попкорном


а чито, хороший вопрос. ждём набросов свенома на бедную DateTime.

хотя орхитектура DateTime и правда напростительно ужасна.
john2007
Дата: 02.07.2014 17:53:58
hVostt
john2007
Подскажите, зачем структуру DateTime сделали неизменяемой?


var dateTime = new DateTime(2014, 2, 1);
dateTime.Day = 30;

var dateTime = new DateTime(2014, 1, 30);
dateTime.Month = 2;


А это что за код, о чем он?
john2007
Дата: 02.07.2014 18:00:35
hVostt
john2007
Подскажите, зачем структуру DateTime сделали неизменяемой?


var dateTime = new DateTime(2014, 2, 1);
dateTime.Day = 30;

var dateTime = new DateTime(2014, 1, 30);
dateTime.Month = 2;


А, я понял, кажется.

а в чем будет разница с
var dateTime = new DateTime(2014, 2, 30);
?

Ладно упрощу вопрос, зачем сделали структуру Int32 неизменяемой?
john2007
Дата: 02.07.2014 18:06:18
john2007
Ладно упрощу вопрос, зачем сделали структуру Int32 неизменяемой?


Слишком просто получилось и бессмысленно ))

Тогда по другому, зачем структуры делать неизменяемыми?

И кто такой свеном? ))
Алексей К
Дата: 02.07.2014 18:18:06
john2007
И кто такой свеном? ))
Это страшный человек. Лучше вообще не знать, что такие люди на земле есть.
hVostt
Дата: 02.07.2014 18:27:14
john2007
А, я понял, кажется.

а в чем будет разница с
var dateTime = new DateTime(2014, 2, 30);
?


ошибка будет. и dateTime нельзя будет воспользоваться. а что делать с существующим dateTime, над которым вздумали поиздеваться?
hVostt
Дата: 02.07.2014 18:31:47
john2007
Тогда по другому, зачем структуры делать неизменяемыми?


чтоб их нельзя было изменять. например, из параллельного потока. и вообще, даже изменяемые структуры не такие уж изменяемые:

struct A {
   public int V1;
   public int V2;
}

var list = new List<A> { 
   new A { V1 = 1, V2 = 2 },
   new A { V1 = 2, V2 = 2 },
   new A { V1 = 3, V2 = 2 },
};

list[0].V1 = 5;

Console.WriteLine(list[0].V1);


что увидем на экране?