C# 結(jié)構(gòu)函數(shù)
結(jié)構(gòu)類(lèi)型可在一個(gè)地方存儲(chǔ)多個(gè)數(shù)據(jù)元素,但實(shí)際上結(jié)構(gòu)可以做的工作遠(yuǎn)不止這一點(diǎn)。例如,除了數(shù)據(jù),結(jié)構(gòu)還可以包含函數(shù)。這初看起來(lái)很奇怪,但實(shí)際上是非常有用的。例如,考慮以下結(jié)構(gòu):
struct CustomerName
{
public string firstName, lastName;
}
如果變量類(lèi)型是CustomerName,并且要在控制臺(tái)上輸出一個(gè)完整的姓名,就必須使用姓、名構(gòu)成該姓名。例如,對(duì)于CustomerName變量myCustomer,可以使用下述語(yǔ)法:
CustomerName myCustomer;
myCustomer.firstName = "John";
myCustomer. lastName = "Franklin";
WriteLine($"{myCustomer.firstName} {myCustomer.lastName}");
把函數(shù)添加到結(jié)構(gòu)中,就可以集中處理常見(jiàn)任務(wù),從而簡(jiǎn)化這個(gè)過(guò)程??梢园押线m的函數(shù)添加到結(jié)構(gòu)類(lèi)型中,如下所示:
struct CustomerName
{
public string firstName, lastName;
public string Name() => firstName + " " + lastName;
}
該關(guān)鍵字不是結(jié)構(gòu)函數(shù)所需的。這個(gè)函數(shù)的用法如下所示:
CustomerName myCustomer;
myCustomer.firstName = "John";
myCustomer.lastName = "Franklin";
WriteLine(myCustomer.Name());
這個(gè)語(yǔ)法比前面的語(yǔ)法簡(jiǎn)單得多,也更容易理解。注意,NameO函數(shù)可以直接訪問(wèn)firetName和lastName結(jié)構(gòu)成員。在CustomerName結(jié)構(gòu)中,它們可以被看成全局成員。
點(diǎn)擊加載更多評(píng)論>>