如何将对象的实例化为lambda表达式

时间:2019-07-25 11:39:52

标签: c# lambda

对不起,是否可以将该代码转换为lambda表达式

var person = new Person();
person.Age = 17;
person.FirstName = "Todor";
person.SecondName = "Todorov";

2 个答案:

答案 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"
};