В ReSharper есть набор аннотаций кода, полезных для явного выражения намерений кода, которые могут использоваться в среде IDE. Двумя наиболее полезными аннотациями являются атрибуты [CanBeNull]
и [NotNull]
, которые можно использовать в конструкторах, свойствах и методах, например:
[CanBeNull]
private Foo DoSomething([NotNull] string text)
{
// ...
}
Это долгий путь, но можно ли каким-либо образом назначить эти атрибуты параметру Action или Func?
Я понимаю, что следующий код является незаконным (поскольку аргументы типа не являются допустимой целью для атрибутов), но есть ли альтернативный способ выразить это?
private void DoSomething(Action<[NotNull]string> processText)
{
///...
}
delegate void TextProcessor([NotNull]string text)
- person vc 74   schedule 23.03.2018