|
DateTime
|
|||
---|---|---|---|
#18+
Подскажите, зачем структуру DateTime сделали неизменяемой? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 17:09 |
|
DateTime
|
|||
---|---|---|---|
#18+
john2007Подскажите, зачем структуру DateTime сделали неизменяемой? Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 17:47 |
|
DateTime
|
|||
---|---|---|---|
#18+
Изопропилушёл за попкорном а чито, хороший вопрос. ждём набросов свенома на бедную DateTime. хотя орхитектура DateTime и правда напростительно ужасна. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 17:49 |
|
DateTime
|
|||
---|---|---|---|
#18+
hVosttjohn2007Подскажите, зачем структуру DateTime сделали неизменяемой? Код: c# 1. 2. 3. 4. 5.
А это что за код, о чем он? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 17:53 |
|
DateTime
|
|||
---|---|---|---|
#18+
hVosttjohn2007Подскажите, зачем структуру DateTime сделали неизменяемой? Код: c# 1. 2. 3. 4. 5.
А, я понял, кажется. а в чем будет разница с var dateTime = new DateTime(2014, 2, 30); ? Ладно упрощу вопрос, зачем сделали структуру Int32 неизменяемой? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:00 |
|
DateTime
|
|||
---|---|---|---|
#18+
john2007Ладно упрощу вопрос, зачем сделали структуру Int32 неизменяемой? Слишком просто получилось и бессмысленно )) Тогда по другому, зачем структуры делать неизменяемыми? И кто такой свеном? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:06 |
|
DateTime
|
|||
---|---|---|---|
#18+
john2007И кто такой свеном? ))Это страшный человек. Лучше вообще не знать, что такие люди на земле есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:18 |
|
DateTime
|
|||
---|---|---|---|
#18+
john2007А, я понял, кажется. а в чем будет разница с var dateTime = new DateTime(2014, 2, 30); ? ошибка будет. и dateTime нельзя будет воспользоваться. а что делать с существующим dateTime, над которым вздумали поиздеваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:27 |
|
DateTime
|
|||
---|---|---|---|
#18+
john2007Тогда по другому, зачем структуры делать неизменяемыми? чтоб их нельзя было изменять. например, из параллельного потока. и вообще, даже изменяемые структуры не такие уж изменяемые: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
что увидем на экране? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 18:31 |
|
DateTime
|
|||
---|---|---|---|
#18+
john2007, или так Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 19:01 |
|
DateTime
|
|||
---|---|---|---|
#18+
Где-то в степиjohn2007, или так Код: c# 1. 2. 3. 4.
Вывело 1000000000. А в случае с дженериком не компилится. Т.е. вызов list[0] у дженерика приводит к выполнению new A()? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:22 |
|
DateTime
|
|||
---|---|---|---|
#18+
Pallaris, авторТ.е. вызов list[0] у дженерика приводит к выполнению new A()? получаем копию. new A() - это не копия, это default(A) Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 20:46 |
|
DateTime
|
|||
---|---|---|---|
#18+
Где-то в степи, А list[0] у массива почему копию не возвращает? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:10 |
|
DateTime
|
|||
---|---|---|---|
#18+
john2007Подскажите, зачем структуру DateTime сделали неизменяемой?Ну это маразм. Обычный маразм. Так же они, например, сделали структурой Guid. Поэтому вы не можете, например, обнулить его. Вместо этого вам предлагается использовать default(Guid), который есть 000...000. Бред несусветный. Ну да ладно, таких перлов в .Net полно, не обращайте внимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:14 |
|
DateTime
|
|||
---|---|---|---|
#18+
Pallaris, Потому что это фишка оптимизатора компилятора, для массивов возвращается указатель на упаковку - тут же нет дженериков, но только вы приведете что вернулось к структуре, песня будет старой. или с левой стороны поставите IList<A> ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:32 |
|
DateTime
|
|||
---|---|---|---|
#18+
Блин о чем тема - что структура это не ссылочный тип, или что структура не может отнаследоваться от структуры? Или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:34 |
|
DateTime
|
|||
---|---|---|---|
#18+
hVosttждём набросов свеномаА что Свеном теперь тут будет ошиваться? Я думал, он облегчился и пошёл заниматься своими крутяцкими проектами. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:34 |
|
DateTime
|
|||
---|---|---|---|
#18+
Где-то в степи, В мсдн пишут что для дженерика list[0] вернет выражение (видимо, new a { v1=1, v2=2 }). Оно что, все время так будет работать при любом обращении к list[0]? Или я что-то не так понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:39 |
|
DateTime
|
|||
---|---|---|---|
#18+
Pallaris, Я что те вразумлю вас что значит для всех и всегда? ну и для второго будет list[1].V1=100 некомпильно.. ну наверное будет всегда, пока в следующих версиях не исправят ( исправили же захват локальных в анонимах)по просьбе трудящихся, хотя Э.Л. писал что исправили по причине - так как заебся давать объяснения.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 21:50 |
|
DateTime
|
|||
---|---|---|---|
#18+
Где-то в степи, Так может и фиксить не надо, я не знаю. Я не шарю, как оно работает, поэтому и задаю вопросы. Получается при любом обращении к дженерику для структуры будет создаваться новый объект (где, в куче?) -я правильно понимаю? А list<A> list = new list<A> { new a ()} просто говорит, что enumeraor, когда к нему обратятся, должен вернуть new a(), но на этапе объявления дженерика ничего не создается? Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 22:05 |
|
DateTime
|
|||
---|---|---|---|
#18+
Pallaris, у вас какая то куча. < когда к нему обратятся, должен вернуть new a()> копию зачем ее запаковывать и распаковывать <но на этапе объявления дженерика ничего не создается? > создается объект внутренним массивом вообще по list<A> list = new list<A> { new a ()} можно еще один топик создать Мы так можем до бесконечности раскручивать стек вопросов и ответов, структуры это очень хитрые и своенравные типы я понимаю что не хватает знаний ( это не порок, если вы их ищите), надо наверно обратиться к сети, почитать блог Эрика Липперта есть частичный перевод, он как бы объясняет подробно все плюшки с точки зрения компилятора и логики ( почему так а не так). в теме поста это абсурдно обсуждать. зы автор Guid. Поэтому вы не можете, например, обнулить его. Вместо этого вам предлагается использовать default(Guid), Guid.Empty зачем его обнулять? мы сами будем его генерить? дааа, трудно быть богом.... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 22:37 |
|
DateTime
|
|||
---|---|---|---|
#18+
Pallaris, я вам вдогонку, что бы не расстраивать ) Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2014, 22:46 |
|
DateTime
|
|||
---|---|---|---|
#18+
hVosttjohn2007Тогда по другому, зачем структуры делать неизменяемыми? чтоб их нельзя было изменять. например, из параллельного потока. и вообще, даже изменяемые структуры не такие уж изменяемые: Как то? Не понял. Как изменяемую структуру изменить из другого потока и как неизменяемая структура от этого защищает? hVostt Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
что увидем на экране? Это о чем говорит? A - это какая структура, изменяемая или нет или о чем пример? )) Не компилится и понятно почему. Это все равно что написать var random = new Random(); random.Next = 3; ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2014, 00:44 |
|
|
start [/forum/topic.php?fid=20&fpage=115&tid=1402726]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 130ms |
0 / 0 |