午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#中的屬性

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

簡介

屬性是代表類的實例或類中的一個數據項的成員,使用屬性看起來非常像寫入或讀取一個字段,語法是相同的。

下面的代碼展示了名稱為D的類的使用,它有一個公有字段和一個公有屬性,從用法無法區分它們。

D d = new D();


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

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

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

與字段類似,屬性有如下特征:

1、它是命名的類成員。

2、它有類型。

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

和字段不同的是,屬性是一個函數成員。

1、它不為數據存儲分配內存。

2、它執行代碼。

一個關于屬性的簡單示例

代碼如下:

public class Person

{

    private string name; // 私有字段


    public string Name

    {

        get

        {

            // 這是屬性的get訪問器,用于獲取屬性的值

            return name;

        }

        set

        {

            // 這是屬性的set訪問器,用于設置屬性的值

            name = value;

        }

    }

}

這個示例的圖示如下:

在這個示例中,Name 屬性提供了對 name 字段的訪問,但它本身并不存儲數據。當您使用 person.Name 讀取屬性時,實際上調用了屬性的get訪問器來獲取字段的值,而當您使用 person.Name = "John" 設置屬性時,實際上調用了屬性的set訪問器來設置字段的值。

屬性聲明和訪問器

set和get訪問器有預定義的語法和語義??梢园裺et訪問器想象成一個方法,帶有單一的參數“設置”屬性的值,get訪問器沒有參數并從屬性返回一個值。

set訪問器的特點

1、有一個單獨的、隱式的值參,名稱為value,與屬性的類型相同。

2、返回類型void。

get訪問器的特點

1、沒有參數。

2、返回類型與屬性類型相同。

屬性和關聯字段

屬性常和字段關聯,一種常見的方式是在類中將字段聲明為private以封裝該字段,并聲明一個public屬性來控制從類的外部對該字段的訪問,和屬性關聯的字段常被稱為后備字段或后備存儲。

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

一種約定是兩個名稱使用相同的內容,但字段使用Camel大小寫,屬性使用Pascal大小寫。(Camel大小寫風格中,復合詞標識符中每個單詞的首字母大寫,出來第一個單詞,其余字母都是小寫,Pascal大小寫風格中,復合詞中每個單詞的首字母都是大寫。)

另一種約定是屬性使用Pascal大小寫,字段使用相同標識符的Camel大小寫版本,并以下劃線開始。

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

private int firstField; // Camel大小寫

public int FirstField   // Pascal大小寫

{

get { return firstField; }

set { firstField = value;}

}

// 第二種約定的寫法

private int _secondField; // 下劃線及Camel大小寫

public int SecondField   // Pascal大小寫

{

get { return _secondField; }

set { _secondField = value; }

}

?

只讀和只寫屬性

要想不定義屬性的某個訪問器,可以忽略該訪問器的聲明。

只有get訪問器的屬性稱為只讀屬性。只讀屬性是一種安全的,把一項數據從類或類的實例中傳出,而不允許太多訪問方法。

只有set訪問器的屬性稱為只寫屬性。只寫屬性是一種安全的,把一項數據從類的外部傳入類,而不允許太多的訪問的方法。

兩個訪問器至少有一個必須定義,否則編譯器會報錯,如下圖所示:

自動實現屬性

因為屬性經常被關聯到后備字段,C#提供了自動實現屬性(automatically implemented property),允許只聲明屬性而不聲明后備字段,編譯器會為我們創建隱藏的后備字段,并且自動掛接到get和set訪問器上。

自動實現屬性的注意點:

1、不聲明后備字段,編譯器會根據屬性的類型分配存儲。

2、不能提供訪問器的方法體,它們必須被簡單地聲明為分號。get擔當簡單的內存讀,set擔當簡單的寫。

3、只有通過訪問器才能訪問后備字段。因為不能用其他的方法訪問它,所以實現只讀和只寫屬性沒有意義,因此必須同時提供讀寫訪問器。

一個自動實現屬性的示例,代碼如下:

public class Person

{

public string Name   // 沒有聲明后備字段

{

get; set;        // 訪問器的方法體被聲明為分號

}

}

internal class Program

{

static void Main(string[] args)

{

Person person = new Person();

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

person.Name = "小王";

Console.WriteLine(person.Name);

}

}


運行結果如下圖所示:

轉自https://www.cnblogs.com/mingupupu/p/17844001.html


該文章在 2025/2/15 11:16:27 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 69国产亚洲精品av久久 | 国产高清福利 | 国产极品精频在线观 | 精品三级麻豆 | 国产高清无码精油按摩 | 国产一区二区三区不卡在线看 | 国产精品美女www爽爽爽视 | 国产成人无码免费网站 | 成人爱做日本视频免费 | av中文字幕精品一区二区久久久 | 91精品国产秘入口动漫 | 国产午夜福利短视频 | 精品久久久久久无码人妻 | 国产麻豆精品免费 | 国产欧美日韩另类精彩视频 | 国产亚洲欧美一区二区三区在 | 精品无码人妻夜人多侵犯18 | 国产亚洲专区在线观 | 精品无码日韩国产不卡av | 国产精品无码一区二区在线观动 | av特黄高清毛片观看 | 国产高清在线免费无码 | 国产原创在线观看播放 | 国产区女主播在线观看 | 国产成人精品三级在 | 国产精品系列在线一区 | 91久久国产综合精品 | 国产av一区二区三区久久浪潮 | 国产无套内射又大又猛 | 国产福利刺激视频视频 | 国产主播福利精品中文 | 91精品人妻一区二区三区蜜 | av传媒视频窝窝影院午夜看片 | 韩国午夜理伦三级在线观看仙踪林 | 国产自无码视频在线观看 | 国产精品成人久久电影 | 国产在线手机喷潮视频 | 国产成人精品午夜福利在线播放 | 国产av无码熟妇 | 成人亚洲精品另类动态 | 风韵丰满熟妇啪啪区老老熟妇 |