C# 函数返回后,是否可以将参数的属性标记为null/notnull?

C# 函数返回后,是否可以将参数的属性标记为null/notnull?,c#,annotations,nullable-reference-types,c#-9.0,C#,Annotations,Nullable Reference Types,C# 9.0,如果我有一个函数bool Foo(string?input),那么我可以对它进行注释,表明如果返回值true,则input不为空: public static bool Foo([NotNullWhen(true)] string? input) 对于一个参数的属性,可以这样做(或类似的事情)吗?我在想一些关于 public class AClass { string? NullableString {get;set;}} public static bool Foo([PropertyNot

如果我有一个函数
bool Foo(string?input)
,那么我可以对它进行注释,表明如果返回值
true
,则
input
不为空:

public static bool Foo([NotNullWhen(true)] string? input)
对于一个参数的属性,可以这样做(或类似的事情)吗?我在想一些关于

public class AClass { string? NullableString {get;set;}}
public static bool Foo([PropertyNotNullWhen(true, nameof(AClass.NullableString))] AClass input)

我认为
MemberNotNullWhen
在这种情况下不起作用,因为它只适用于方法、属性和索引器,而不适用于它们的参数。

这在目前是不可能的。我建议您以您的真实世界为例开始讨论。我认为如果有足够的需求,他们肯定会考虑将来的语言版本。“YaalHalbistaDt看起来确实是答案。如果你感兴趣的话,我在上打开了一个问题。这在目前是不可能的。我建议您以您的真实世界为例开始讨论。我认为如果有足够的需求,他们肯定会考虑将来的语言版本。“YaalHalbistaDt看起来确实是答案。如果你感兴趣的话,我在上打开了一个问题。