属性 Getter 和 Setter 之间的可空性不匹配?

问题描述 投票:0回答:1

我已经用 .NET 8 用 C# 编写了一个实现 IDataParameter 的类。 我在 Setter 上得到了此代码的 CS8767:

public class TestDataParameter: IDataParameter
{
   ...

   public string ParameterName
   {
      get; set;
   } = "";
   ...
}

返回类型为字符串?通向 Getter 上的 CS8766。

public class TestDataParameter: IDataParameter
{
   ...

   public string? ParameterName
   {
      get; set;
   } = "";
   ...
}

这非常烦人。该接口将属性声明为字符串。我不明白为什么 getter 和 setter 需要不同的可空性以及应该如何实现。 IDataParameter 声明了

string ParameterName { get; set; }
,因此实现不可为 null 的属性应该是正确的。 有谁知道为什么会发生这种情况以及如何正确处理? 谢谢,亚历克斯。

c# nullable-reference-types
1个回答
0
投票

如果您想删除警告,您可以遵循 接口本身使用的方法 - 使用

AllowNullAttribute
:

public class TestDataParameter : IDataParameter
{
    // ...
    [AllowNull]
    public string ParameterName { get; set; } = "";
    // ...
}

另请参阅:

© www.soinside.com 2019 - 2024. All rights reserved.