2016-07-25 2 views
2

Есть ли в C# Nullable аннотация?C# и флаг или аннотация?

Например, в Java

public @Nullable <T extends BaseJsonClass> T getModel(String saveKey, Class<T> type) { 

Теперь, когда разработчик пытается вызвать

Object.getModel().someMethod() 

компилятор предупредит их, что они не проверяла нуль.

Я осведомлен о ? знака в конце имен вар в C#, как someObject? но проблема состоит в том, что это может быть сложно/раздражающих/модели JSON, когда вары используются во многих местах.

+0

Попробуйте это, похоже на тот же запрос. [link] (http://stackoverflow.com/questions/291340/mark-parameters-as-not-nullable-in-c-net) – Thennarasan

+0

Возможный дубликат [C#: как реализовать и использовать атрибут NotNull и CanBeNull] (http://stackoverflow.com/questions/792531/c-how-to-implement-and-use-a-notnull-and-canbenull-attribute) – user3185569

+0

Я сомневаюсь, если что-то подобное доступно в C# – Neel

ответ

7

C# не имеет ничего подобного - такая функция не является частью языка (пока).

Однако, если вы используете Resharper, вы можете использовать его Value and Nullability Analysis функцию, которая позволяет добавить несколько атрибутов в код: [CanBeNull], [NotNull], [ItemCanBeNull], [ItemNotNull]. Анализ нулевой вероятности, выполняемый плагином, учитывает эти атрибуты, в результате чего вы запрашиваете предупреждения о компиляции.

+0

Что с этим компилятор должен сделать? –

+0

Ну, я полагаю, что компилятор теоретически мог бы сделать сложный анализ и генерировать предупреждения, когда никто не проверяет нуль, где он должен. Но вы правы, это скорее языковая функция, чем компилятор. Я передумаю это. – pmbanka

Смежные вопросы