Атрибуты членов и параметров в C#
Атрибут NotNull на параметре - пометка для анализатора: аргумент не должен быть null. На число в консоли он не влияет. Атрибут Optional разрешает не передавать аргумент: пропущенный int становится 0.
Пометку NotNull анализатор читает при проверке вызовов.
Вызовем метод сохранения с одним аргументом. Длина "item" равна 4, а пропущенный номер равен 0:
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
new Api().Save("item");
class Api
{
public void Save([NotNull] string name, [Optional] int version) =>
Console.WriteLine(name.Length + version); // выведет 4
}
Опишите класс Ledger с методом, где имя обязательно, а номер ревизии можно не передавать. Вызовите метод только с именем "order" и выведите длину имени плюс номер.