欄位和屬性 列表Size 0和null的區別

2021-08-28 02:13:11 字數 708 閱讀 8760

類成員包括變數和方法。如果希望其他類能夠訪問成員變數的值,就必須定義成公有的,而將變數設為公有public,那這個成員變數的就可以被任意訪問(包括修改,讀取),這樣不利於資料安全。 c#通過屬性特性讀取和寫入字段(成員變數),而不直接直接讀取和寫入,以此來提供對類中字段的保護。屬性可用於類內部封裝字段。屬性是c#物件導向技術中封裝性的體現。

屬性和字段的區別:

•屬性是邏輯字段,是字段的擴充套件,並不占用實際的記憶體;而字段占用記憶體空間。(這是很重要的區別)

•屬性可以被其他類訪問;而非public的字段不能被直接訪問。

•屬性可以對接受的資料在範圍上做限定;而字段不能。

使用屬性的情況:

•要求字段只能讀或者只能寫;

•需要限制欄位的取值範圍;

•在改變乙個欄位的值的時候希望改變物件的其它一些狀態;

使用欄位的情況:

•允許自由讀寫;

•取值範圍只受資料型別約束而無其他任何特定限制;

•值的變動不需要引發類中其它任何成員的相應變化。

列表size=0和null的區別:       舉個不算恰當的例子,我有乙個空著的水杯(list),而你沒有,那你是null,我的size為0。你想裝水需要去買個水杯(new arraylist();),我就可以直接裝水(list.add(水))。你要是直接裝,水就流出去啦(空指標異常)。所以用做判斷的時候經常連用 list!=null && list.size()!=0 。

size 0和empty 的比較

最近開發公司專案的時候發現大量用到了stl模板庫,而且很多地方都需要判斷乙個容器是否為空,看到了兩種寫法,分別使用了容器的 size 函式和 empty 函式。我覺得很好奇,這兩種寫法有什麼區別呢?在網上查閱了一些資料,發現說empty 效率更高的佔大多數。又檢視了sgi stl的幫助文件,裡面有一...

C 字段,屬性和屬性封裝字段

c 類成員包括 字段,屬性和方法。對於日常對於乙個類我們新增成員時會有幾種方法。如對於乙個person 類,我們對於其中乙個成員 性別 gender 進行定義,可以寫成 1,public string gender 2,public string gender 3,private string ge...

c 欄位和屬性

一 字段 field 可以在宣告欄位的同時賦給它乙個初始值。二 屬性 property 1 引入 假如將字段宣告為public,則在類的外部都可以對該字段進行訪問和更改,違背了類的封裝特性。如果宣告為private,則這種形式的封裝通常又過於徹底。例如,你可能希望欄位從外部唯讀,但從內部可以更改,但...