В исходном коде Framework Entity Framework (ссылка) Я нашел эту строку:
public virtual IRelationalTransaction Transaction
{ get; [param: NotNull] protected set; }
Часть [param: NotNull]
выглядит очень странно для меня. Любая идея, что такое синтаксис С#? Я знаком с атрибутами и параметром, но не с этой комбинацией.
Определение NotNull заключается в следующем:
[AttributeUsage(
AttributeTargets.Method | AttributeTargets.Parameter |
AttributeTargets.Property | AttributeTargets.Delegate |
AttributeTargets.Field)]
internal sealed class NotNullAttribute : Attribute
{
}
Что я ожидал использовать просто как [NotNull]
, но что здесь делает param
?