2010-01-16 2 views
5

Можно создать дубликат:
a curious c# syntaxЧто такое? означает после типа?

Так что я видел некоторый код вокруг и некоторые из них использовать? после такого типа:

private Point? loc = null; 

Так что мне интересно, если точка? отличается от точки (не может поставить вопросительный знак в конце моего предложения, или я буду путать вас, ребята ...:]). Язык, который я использую, - это, кстати, C#.

+2

Чтобы написать «код» внутри нормальных предложений, используйте обратные ссылки, 'для обозначения текста как« код ». Таким образом, вы можете использовать угловые скобки, и если бы вы поставили знак вопроса внутри, вы бы никого не смутили. –

+0

Dup of http://stackoverflow.com/questions/2069863/a-curious-c-syntax/2069873#2069873 – Eilon

ответ

9

T? является сокращенным (в C#) для Nullable<T> - так Point? это еще один способ записи Nullable<Point> или пример.

См. Разделы 1.3 и 4.1 спецификации языка C# 3 - и в других местах, если честно - для более подробной информации. Дополнительную информацию см. В документах для System.Nullable<T>. Или прочитайте главу 4 C# в глубине :) (К сожалению, это не один из бесплатных разделов.)

(Этот вопрос обязательно будет дублировать, но у меня нет энергии, чтобы найти его прямо сейчас.)

+1

Это действительно дубликат: http://stackoverflow.com/questions/2069863/a-curious-c -syntax/2069873 # 2069873 – Eilon

+0

Другой дубликат: http://stackoverflow.com/questions/2072482/in-c-what-is-the-in-the-type-datetime –

+0

Знал, что это было где-то, но не удалось найти это (я не думаю, что поиск может справиться? очень хорошо, и я понятия не имел, что это можно было обнулять ... Извините, ребята. – DMan

2

Point? такое же, как Nullable<Point>. Он позволяет назначить null значениям типов, например struct.

0

Это означает, что тип может принимать свое значение и значение null.