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