相关疑难解决方法(0)

为什么C#6.0在使用Null传播运算符时不允许设置非null可空结构的属性?

假设我们有以下代码:

struct Article
{
    public string Prop1 { get; set; }
}

Article? art = new Article();
art?.Prop1 = "Hi"; // compile-error
Run Code Online (Sandbox Code Playgroud)

编译错误是

CS0131赋值的左侧必须是变量,属性或索引器.

实际上art?.Prop1是一个属性,应该被视为一个有效的任务!
我没有看到任何分配使这段代码无效的问题.

为什么C#6.0不允许设置非null可空结构的属性?
或者,任何建议一个行代码使分配有效将不胜感激.

c# compiler-errors c#-6.0

9
推荐指数
1
解决办法
1437
查看次数

标签 统计

c# ×1

c#-6.0 ×1

compiler-errors ×1