为什么C#对象初始化程序有这种行为?
public class ChuckNorris
{
public string Impact { get; set; }
}
public class Burnination
{
public string Impact { get; set; }
public ChuckNorris GetChuck()
{
var chuckNorris = new ChuckNorris
{
Impact = Impact // <- Why does the right hand "Impact" property here automatically refers to "Burnination.Impact" and not "chuckNorris.Impact"
};
return chuckNorris;
}
}
Run Code Online (Sandbox Code Playgroud)
就像上面代码中的注释所说的那样.这是为什么右手影响属性指向Burnination.Impact和不影响财产查克·诺里斯类.如何假设我(开发人员)指的是底层类的Impact属性?
基本上,对RHS的表达式进行=解析和评估,就像在任何其他情况下一样.所以你可以:
ChuckNorris chuck1 = new ChuckNorris { Impact = "foo" };
ChuckNorris chuck2 = new ChuckNorris { Impact = chuck1.Impact };
Run Code Online (Sandbox Code Playgroud)
它只是赋值左侧的标识符,它们隐含地与正在创建的对象有关.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |