簡體   English   中英

如何將對象的實例化為lambda表達式

[英]How can I convert the instantiation of an object to a lambda expression

請問,有可能將該代碼轉換為lambda表達式嗎?

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

這是沒有用的,但是是的:

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) =>....

出於清楚的原因,我這樣做了。

您可以做的一件事是

new Person(){
Age = 17,
FirstName = "Todor",
SecondName = "Todorov"
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM