Это не гарантируется для всех типов, потому что оператор <
может быть переопределен, чтобы иметь смысл для определенного класса, и этот код может не принимать во внимание нуль. Для стандартных операторов для Nullable<T>
, null будет сравниваться, чтобы быть меньше значения.
Но если вы имеете дело с пользовательскими типами, учтите, что их операторы могут не принимать во внимание нули. Например, посмотрите на этот глупый пример:
void Main()
{
Foo x = null;
Foo y = new Foo();
Console.WriteLine(x < y);
Console.WriteLine(x > y);
}
class Foo
{
public static bool operator <(Foo lhs, Foo rhs)
{
if (ReferenceEquals(lhs, null))
return false;
return true;
}
public static bool operator >(Foo lhs, Foo rhs)
{
return false;
}
}
Я согласен с другим ответом здесь, что, хотя ваш код может работать, было бы лучше иметь явную проверку на ноль.
для Objective-C лучше всего Xcode - если у вас Mac. Существуют и другие IDE, например KDevelop , которые предлагают поддержку других операционных систем. Единственное, что я видел для Eclipse, это объективное затмение , но у меня нет опыта с ним.
Существуют и другие IDE, например KDevelop , которые предлагают поддержку других операционных систем. Единственное, что я видел для Eclipse, это объективное затмение , но у меня нет опыта с ним. Существуют и другие IDE, например KDevelop , которые предлагают поддержку других операционных систем. Единственное, что я видел для Eclipse, это объективное затмение , но у меня нет опыта с ним.Если у вас нет Mac и вы хотите изучить Objective-C в Windows, вам следует взглянуть на GNUstep ( http://www.gnustep.org/ ). Я думаю, вы получаете пакеты для Windows, и она идет с IDE. GNUstep содержит множество классов Какао, поэтому начать работу может быть относительно легко. Однако, когда я некоторое время назад попробовал GNUstep в Windows, он оказался для меня довольно глючным.
Текстовым редактором, который вы можете попробовать, является E ( http://www.e-texteditor.com/index.html ]). Это клон TextMate (популярного редактора на Mac), и вы можете устанавливать пакеты для всех видов вещей, включая поддержку Objective-C. ( http://svn.textmate.org/trunk/Bundles/ ). Вы получаете бесплатную пробную версию, так что, может быть, попробуйте.
Надеюсь, это поможет. Я почти не занимался программированием на Objective-C в Windows, но это '
Другие ответы дают довольно хорошие прямые ответы. Тем не менее, мое первое желание - перейти к мета-вопросу: «Какова причина вашего изучения Objective-C?» Причина, по которой я спрашиваю, заключается в том, что рекомендации, которые я дам, во многом зависят от ваши мотивации. Например ...
Я понимаю, что это не дает прямого ответа на ваш вопрос, но я надеюсь, что это дает некоторое понимание, будь то спрашивающий или кто-то еще в той же ситуации. Ура!
настройка и администрирование проекта в Eclipse - это проблема даже для Java.Я понимаю, что это не дает прямого ответа на ваш вопрос, но надеюсь, что это дает некоторое понимание, будь то спрашивающий или кто-то еще в той же ситуации. Ура!
установка и администрирование проекта в Eclipse - это проблема даже для Java.Я понимаю, что это не дает прямого ответа на ваш вопрос, но надеюсь, что это дает некоторое понимание, будь то спрашивающий или кто-то другой в той же ситуации. Ура!
Однажды я попытался собрать воедино среду разработки для iPod / iPhone с открытым исходным кодом, но процесс занял слишком много времени и в конце концов отказался. Взамен у меня Mac. После этого инструменты стали бесплатными, и я начал думать и кодировать на Objective-C.
Я заметил книгу о разработке программного обеспечения с открытым исходным кодом (под Linux). Издатель старый добрый О`Рейли. Возможно, стоит взглянуть.
В том же духе можно сказать, что написание приложений на Objective-C для Linux может привести к большему признанию языка и фреймворка. На данный момент он действительно предназначен для тех, кто интересуется разработкой приложений для устройств Mac или iPhone / iPad / iPod.
Кроме того, если модуль времени выполнения objective-C достаточно легкий, он может подойти и для домашних разработчиков игровых консолей: я написал приложение для консоли Nintendo DS и в итоге написал множество строк кода на C ++. Я считаю, что это можно было бы сделать с меньшим количеством кода с помощью ObjC и инкапсулированной версией libnds, но, насколько мне известно, GNUStep еще не был перенесен в цепочку инструментов DS с открытым исходным кодом ( www.devkitpro.org ).
Удачного кодирования!