Tam*_*ich 2 c# object object-initializers
我试图使用Object初始化器来设置类的属性,然后在类的构造函数中访问它们.问题是在构造函数运行之后似乎没有设置属性.难道我做错了什么.
基础班..
public class TestClass
{
public string FirstName{get; set;}
public TestClass(){
NewClass nc = NewClass(FirstName);
}
}
Run Code Online (Sandbox Code Playgroud)
客户类
public class ClientClass
{
public ClientClass(){
TestClass tc = new TestClass{ FirstName="Jimmy"};
}
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ott 10
对象初始化器实际上是语法糖.鉴于:
var person = new Person() { Name = "Matt" };
Run Code Online (Sandbox Code Playgroud)
编译器会将其更改为:
Person person = new Person();
person.Name = "Matt";
Run Code Online (Sandbox Code Playgroud)
(实际上,它的IL变体)
构造函数将始终在任何属性集之前执行.在创建传递的构造函数时,非常重要的是需要任何参数来正确初始化您的类型.在您的示例中,您需要FirstName,那么为什么不将其作为构造函数参数传递?
public TestClass(string firstName) { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |