对不起,是否可以将该代码转换为lambda表达式
var person = new Person();
person.Age = 17;
person.FirstName = "Todor";
person.SecondName = "Todorov";
答案 0 :(得分:2)
这是没有用的,但是是的:
Func<Person> person = () =>
{
return new Person()
{
Age = 17,
FirstName = "Todor",
SecondName = "Todorov"
}
};
这种方法将创建某种只读变量,因为每次调用它时,您都会获得一个带有硬编码值的新实例。
另一种方法可能是使生成器起作用:
Func<int, string, string, Person> generatePerson = (int a, string f, string s) =>
{
return new Person()
{
Age = a,
FirstName = f,
SecondName = s
};
};
这就像一个外部构造函数,它将生成您可以参数化的不同对象
var person = generatePerson(17, "Todor", "Todorov");
您还可以跳过输入类型的声明:
Func<int, string, string, Person> generatePerson = (a, f, s) =>....
出于上面的清晰原因,我这样做了。
答案 1 :(得分:-1)
您可以做的一件事是
new Person(){
Age = 17,
FirstName = "Todor",
SecondName = "Todorov"
};