LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#中的屬性

freeflydom
2025年2月15日 11:14 本文熱度 1333

簡(jiǎn)介

屬性是代表類(lèi)的實(shí)例或類(lèi)中的一個(gè)數(shù)據(jù)項(xiàng)的成員,使用屬性看起來(lái)非常像寫(xiě)入或讀取一個(gè)字段,語(yǔ)法是相同的。

下面的代碼展示了名稱(chēng)為D的類(lèi)的使用,它有一個(gè)公有字段和一個(gè)公有屬性,從用法無(wú)法區(qū)分它們。

D d = new D();


d.MyField = 7; //給字段賦值

d.MyProperty = 10; //給屬性賦值

Console.WriteLine($"{d.MyField} {d.MyProperty}"); //讀取字段和屬性

與字段類(lèi)似,屬性有如下特征:

1、它是命名的類(lèi)成員。

2、它有類(lèi)型。

3、它可以被賦值和讀取。

和字段不同的是,屬性是一個(gè)函數(shù)成員。

1、它不為數(shù)據(jù)存儲(chǔ)分配內(nèi)存。

2、它執(zhí)行代碼。

一個(gè)關(guān)于屬性的簡(jiǎn)單示例

代碼如下:

public class Person

{

    private string name; // 私有字段


    public string Name

    {

        get

        {

            // 這是屬性的get訪問(wèn)器,用于獲取屬性的值

            return name;

        }

        set

        {

            // 這是屬性的set訪問(wèn)器,用于設(shè)置屬性的值

            name = value;

        }

    }

}

這個(gè)示例的圖示如下:

在這個(gè)示例中,Name 屬性提供了對(duì) name 字段的訪問(wèn),但它本身并不存儲(chǔ)數(shù)據(jù)。當(dāng)您使用 person.Name 讀取屬性時(shí),實(shí)際上調(diào)用了屬性的get訪問(wèn)器來(lái)獲取字段的值,而當(dāng)您使用 person.Name = "John" 設(shè)置屬性時(shí),實(shí)際上調(diào)用了屬性的set訪問(wèn)器來(lái)設(shè)置字段的值。

屬性聲明和訪問(wèn)器

set和get訪問(wèn)器有預(yù)定義的語(yǔ)法和語(yǔ)義。可以把set訪問(wèn)器想象成一個(gè)方法,帶有單一的參數(shù)“設(shè)置”屬性的值,get訪問(wèn)器沒(méi)有參數(shù)并從屬性返回一個(gè)值。

set訪問(wèn)器的特點(diǎn)

1、有一個(gè)單獨(dú)的、隱式的值參,名稱(chēng)為value,與屬性的類(lèi)型相同。

2、返回類(lèi)型void。

get訪問(wèn)器的特點(diǎn)

1、沒(méi)有參數(shù)。

2、返回類(lèi)型與屬性類(lèi)型相同。

屬性和關(guān)聯(lián)字段

屬性常和字段關(guān)聯(lián),一種常見(jiàn)的方式是在類(lèi)中將字段聲明為private以封裝該字段,并聲明一個(gè)public屬性來(lái)控制從類(lèi)的外部對(duì)該字段的訪問(wèn),和屬性關(guān)聯(lián)的字段常被稱(chēng)為后備字段或后備存儲(chǔ)。

屬性和它們的后備字段有幾種命名約定。

一種約定是兩個(gè)名稱(chēng)使用相同的內(nèi)容,但字段使用Camel大小寫(xiě),屬性使用Pascal大小寫(xiě)。(Camel大小寫(xiě)風(fēng)格中,復(fù)合詞標(biāo)識(shí)符中每個(gè)單詞的首字母大寫(xiě),出來(lái)第一個(gè)單詞,其余字母都是小寫(xiě),Pascal大小寫(xiě)風(fēng)格中,復(fù)合詞中每個(gè)單詞的首字母都是大寫(xiě)。)

另一種約定是屬性使用Pascal大小寫(xiě),字段使用相同標(biāo)識(shí)符的Camel大小寫(xiě)版本,并以下劃線開(kāi)始。

兩種約定的示例代碼如下:

private int firstField; // Camel大小寫(xiě)

public int FirstField   // Pascal大小寫(xiě)

{

get { return firstField; }

set { firstField = value;}

}

// 第二種約定的寫(xiě)法

private int _secondField; // 下劃線及Camel大小寫(xiě)

public int SecondField   // Pascal大小寫(xiě)

{

get { return _secondField; }

set { _secondField = value; }

}

?

只讀和只寫(xiě)屬性

要想不定義屬性的某個(gè)訪問(wèn)器,可以忽略該訪問(wèn)器的聲明。

只有g(shù)et訪問(wèn)器的屬性稱(chēng)為只讀屬性。只讀屬性是一種安全的,把一項(xiàng)數(shù)據(jù)從類(lèi)或類(lèi)的實(shí)例中傳出,而不允許太多訪問(wèn)方法。

只有set訪問(wèn)器的屬性稱(chēng)為只寫(xiě)屬性。只寫(xiě)屬性是一種安全的,把一項(xiàng)數(shù)據(jù)從類(lèi)的外部傳入類(lèi),而不允許太多的訪問(wèn)的方法。

兩個(gè)訪問(wèn)器至少有一個(gè)必須定義,否則編譯器會(huì)報(bào)錯(cuò),如下圖所示:

自動(dòng)實(shí)現(xiàn)屬性

因?yàn)閷傩越?jīng)常被關(guān)聯(lián)到后備字段,C#提供了自動(dòng)實(shí)現(xiàn)屬性(automatically implemented property),允許只聲明屬性而不聲明后備字段,編譯器會(huì)為我們創(chuàng)建隱藏的后備字段,并且自動(dòng)掛接到get和set訪問(wèn)器上。

自動(dòng)實(shí)現(xiàn)屬性的注意點(diǎn):

1、不聲明后備字段,編譯器會(huì)根據(jù)屬性的類(lèi)型分配存儲(chǔ)。

2、不能提供訪問(wèn)器的方法體,它們必須被簡(jiǎn)單地聲明為分號(hào)。get擔(dān)當(dāng)簡(jiǎn)單的內(nèi)存讀,set擔(dān)當(dāng)簡(jiǎn)單的寫(xiě)。

3、只有通過(guò)訪問(wèn)器才能訪問(wèn)后備字段。因?yàn)椴荒苡闷渌姆椒ㄔL問(wèn)它,所以實(shí)現(xiàn)只讀和只寫(xiě)屬性沒(méi)有意義,因此必須同時(shí)提供讀寫(xiě)訪問(wèn)器。

一個(gè)自動(dòng)實(shí)現(xiàn)屬性的示例,代碼如下:

public class Person

{

public string Name   // 沒(méi)有聲明后備字段

{

get; set;        // 訪問(wèn)器的方法體被聲明為分號(hào)

}

}

internal class Program

{

static void Main(string[] args)

{

Person person = new Person();

Console.WriteLine(person.Name); // 想使用規(guī)則屬性那樣使用自動(dòng)屬性

person.Name = "小王";

Console.WriteLine(person.Name);

}

}


運(yùn)行結(jié)果如下圖所示:

轉(zhuǎn)自https://www.cnblogs.com/mingupupu/p/17844001.html


該文章在 2025/2/15 11:16:27 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲欧美日韩另类在线观看 | 久久99久久99精品免费观看 | 欧美日韩国产一区二区 | 在线观看亚洲综合一区 | 亚洲2020天天堂在线 | 日韩亚洲一区中文字幕 |