我注意到像下面这样的代码片段,它用警告标记属性初始化.
public sealed class C(int a)
{
public int A { get; } = a; //<--here
public int Sum(int b)
{
return a + b;
}
}
警告说:
警告CS9124:参数‘int a’被捕获到 封闭类型及其值也用于初始化字段, 属性或事件.
但是,如果我省略了任何进一步的a
变量用法,该警告就会消失.
public sealed class C(int a)
{
public int A { get; } = a;
public int Sum(int b)
{
return b; //<-- no more 'a' used here
}
}
现在,虽然我有嫌疑人,但我不太清楚发出警告的原因.是否因为在这种情况下,类中的任何a
修改都不会更改A
属性?