Что я должен увидеть в сравнении? Во первых, твой код даже не скомпилится, а некомпилящегося безобразия можно написать много и разного. Во-вторых, в оригинальном примере вызывался вовсе не метод DateTime: и что полезного мы получим от сравнения вызова метода одной структуры с вызовом метода другой?
Help will always be given at Hogwarts to those who ask for it.
Мне не надо обьяснять как оно работает. Я это прекрасно понимаю.
Мне ненравится как оно выглядит в принципе.
Если посмотреть на то что мы делаем и сильно не вдумываться — мы берём и присваиваем null некоторой переменной.
А потом у неё вызываем метод который прекрасно работает.
Как минимум выглядит это странно.
Здравствуйте, Tom, Вы писали:
Tom>Мне не надо обьяснять как оно работает. Я это прекрасно понимаю. Tom>Мне ненравится как оно выглядит в принципе. Tom>Если посмотреть на то что мы делаем и сильно не вдумываться — мы берём и присваиваем null некоторой переменной. Tom>А потом у неё вызываем метод который прекрасно работает. Tom>Как минимум выглядит это странно.
Нет, не выглядит: с тем же успехом можно вызвать extension-метод, который может вернуть даже что-то осмысленное. Просто не нужно на этой мелочи заморачиваться, в ней ничего ни умного ни интересного нет.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, _FRED_, Вы писали:
_FR>Что я должен увидеть в сравнении?
то что два очень схожих вызова ведут себя совершенно по разному _FR> Во первых, твой код даже не скомпилится,
извиняюсь. под рукой нет ничего на чем можно проверить
_FR>Нет, не выглядит: с тем же успехом можно вызвать extension-метод, который может вернуть даже что-то осмысленное. Просто не нужно на этой мелочи заморачиваться, в ней ничего ни умного ни интересного нет.
Я думаю для переходящих с C/С++/Java оно будет не очень понятно до осознания value типов.
Здравствуйте, Tom, Вы писали:
_FR>>Нет, не выглядит: с тем же успехом можно вызвать extension-метод, который может вернуть даже что-то осмысленное. Просто не нужно на этой мелочи заморачиваться, в ней ничего ни умного ни интересного нет.
Tom>Я думаю для переходящих с C/С++/Java оно будет не очень понятно до осознания value типов.
Для осознания value-типов и всего остального [нового] нужно впервую очередь отбросить предрассудки и внимательно ознакомится с литературой по предмету, а не то можно и на более неприятные косяки нелететь. Накладывать свой [старый] опыт на новое нужно очень осторожно. Зарвавшиеся являются сами себе буратинами.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Константин Л., Вы писали:
КЛ>при чем здесь это? неравнозначный пример
Вполне равнозначный. Енто в SQL — NULL не является значением, а обозначает "ничего"(за что сильно поплатились, но это к Дейту). В Net такой ошибки не сделали, и null — всего лишь еще одно значение.
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, Константин Л., Вы писали:
КЛ>>при чем здесь это? неравнозначный пример GZ>Вполне равнозначный. Енто в SQL — NULL не является значением, а обозначает "ничего"(за что сильно поплатились, но это к Дейту). В Net такой ошибки не сделали, и null — всего лишь еще одно значение.
да неужели?
null.ToString();
error CS0023: Operator '.' cannot be applied to operand of type '<null>'
Здравствуйте, cvetkov, Вы писали:
_FR>>Что я должен увидеть в сравнении? C>то что два очень схожих вызова ведут себя совершенно по разному
Следующие два вызова ещё более похожи друг на друга
File.Delete(path); // 1
File.Create(path); // 2
однако и тут ведут себя (ну надо же!) не одинаково.
То, что "похожие" вещи ведут себя по-разному [уж тем более в нашем деле] является весьма и весьма распространённой ситуацией. Ключ к пониманию которой в том, что нужно _правильно_ (по _правильным_ параметрам, а не надуманным) определять, какие вещи "одинаковы" (в _чём_!), а какие нет. В данном конкретном случае ключом служат правила языка, и если их не понимать, то можно и в более простых вещах сесть в лужу.
Обсуждение же достоинств языка с позиции понятности-непонятности их любому новичку [в данном конкретном языке\технологии] могут завести в такие дебри, из которых уже будет не выбраться никому из участников.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Константин Л., Вы писали:
КЛ>>>при чем здесь это? неравнозначный пример GZ>>Вполне равнозначный. Енто в SQL — NULL не является значением, а обозначает "ничего"(за что сильно поплатились, но это к Дейту). В Net такой ошибки не сделали, и null — всего лишь еще одно значение.
КЛ>да неужели?
КЛ>null.ToString();
КЛ>error CS0023: Operator '.' cannot be applied to operand of type '<null>'
И что тебя удивляет? Что у "ещё одного значения" есть некоторые ограничения? Так они есть у любого значения: Например, у Math.PI нет метода "GetSomthing()".
Детский сад
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Константин Л., Вы писали:
КЛ>>>>при чем здесь это? неравнозначный пример GZ>>>Вполне равнозначный. Енто в SQL — NULL не является значением, а обозначает "ничего"(за что сильно поплатились, но это к Дейту). В Net такой ошибки не сделали, и null — всего лишь еще одно значение.
КЛ>>да неужели? _FR>
КЛ>>null.ToString();
_FR>
_FR>
КЛ>>error CS0023: Operator '.' cannot be applied to operand of type '<null>'
_FR>И что тебя удивляет? Что у "ещё одного значения" есть некоторые ограничения? Так они есть у любого значения: Например, у Math.PI нет метода "GetSomthing()".
меня не удивляет, а смущает, что у "еще одного значения" разное поведение.
_FR>Детский сад
эмоционально окрашенные определения прошу оставить при себе
Re[8]: Nullable & синтаксис
От:
Аноним
Дата:
21.04.09 14:53
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>И что тебя удивляет? Что у "ещё одного значения" есть некоторые ограничения? Так они есть у любого значения: Например, у Math.PI нет метода "GetSomthing()".
Было бы круто, если бы разработчики сделали такую имплементацию: null.ToString(){return "";}.
Задолбало писать простыни
if (!string.IsNullOrEmpty(o1))
result += o1.ToString();
...
if (!string.IsNullOrEmpty(o10))
result += o10.ToString();
Здравствуйте, Константин Л., Вы писали:
КЛ>меня не удивляет, а смущает, что у "еще одного значения" разное поведение.
С чего ты взял что это у тебя значение? Ты предлагаешь чтобы такое компилировалось?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, _FRED_, Вы писали:
_FR>>И что тебя удивляет? Что у "ещё одного значения" есть некоторые ограничения? Так они есть у любого значения: Например, у Math.PI нет метода "GetSomthing()".
А>Было бы круто, если бы разработчики сделали такую имплементацию: null.ToString(){return "";}.
А>Задолбало писать простыни
А>
А>if (!string.IsNullOrEmpty(o1))
А> result += o1.ToString();
А>...
А>if (!string.IsNullOrEmpty(o10))
А> result += o10.ToString();
А>