C 屬性介紹

2021-06-07 23:42:31 字數 2429 閱讀 5493

屬性:get set  

public class person

set}

}屬性可以忽略get或set訪問器,但是不能兩個都忽略.

set訪問器包含乙個隱藏的引數value,該引數包含從客戶**傳送過來的值.

公共屬性及其底層型別最好使用相同的名稱,因為它們之間的聯絡將很清晰.

字段使用camelcase(***xx),如dateofbirth,而屬性使用pacalcase(***xx),如dateofbirth.一些開發人員喜歡在字段的開頭使用下劃線,如_name,屬性也應使用名詞來命名.

c#通過屬性特性讀取和寫入字段,而不直接讀取和寫入,以此來提供對類中字段的保護.

屬性按可以訪問的型別分為三種不同的型別:

一.讀/寫屬性

讀/寫屬性是乙個具有get()和set()訪問器的屬性.

語法:  [訪問修飾符] 資料型別 屬性 

;set;

}二.唯讀屬性

僅具有get()訪問器屬性稱為唯讀屬性.

語法: [訪問修飾符] 資料型別 屬性名;}

三.只寫屬性

僅具有set()訪問器屬性稱為只寫屬性,不推薦使用只寫屬性.

語法: [訪問修飾符] 資料型別 屬性名;}

示例:using system;

namespace example1

setname=value;}}

#region

static void main(string[ ] args)}}

屬性(property)

-充分體現了物件的封裝性:不直接操作類的資料內容,而是通過訪問器進行訪問,即借助於get和set對屬性的值進行讀寫;另一方面還可以對資料的訪問屬性進行控制(當然也可以通過對普通域加readonly關鍵字來實現。

-設計原則:屬性封裝了對域的操作。把要訪問的域設為private,通過屬性中的get和set操作對域進行設定或訪問。

-不能把屬性作為引用型別或輸出引數來進行傳遞。

-get方法沒有引數;set方法有乙個隱含的引數value。除了使用了abstract修飾符的抽象屬性,每個訪問器的執行體中只有分號「;」外,其他的所有屬性的get訪問器都通過return來讀取屬性的值,set訪問器都通過value來設定屬性的值。

-採用間接方式來訪問物件的屬性(間接呼叫get、set方法):物件.屬性 = 值(呼叫set),變數 = 物件.屬性(呼叫get)。

-在屬性的訪問宣告中:

只有set訪問器,表明該屬性是只寫的。

只有get訪問器,表明該屬性是唯讀的。

既有set訪問器,又有get訪問器,表明該屬性是可讀可寫的。

private string s_filename;

public string filename

//get

set//if

}//set

}//filename

}l      屬性和字段的比較:

ø       屬性不能使用ref/out 型引數

ø       屬性使用前必須賦值

屬性使用前必須賦值,例如:

time lunch;

lunch.hour = 12;//錯誤,lunch沒有初始化

屬性vs.函式

l       相似點

ø       都包含執行**

ø       都可以有訪問修飾符

ø       都可以有virtual, abstract, override 修飾符

ø       都可以用在介面中

l       不同點

ø       屬性只能擁有get/set 語句

ø       屬性不可以是void 型

ø       屬性不能使用引數

ø       屬性不能使用[ ] 引數

ø       屬性不能使用括號

public int hour

類的屬性稱為智慧型字段,類的索引器稱為智慧型陣列。由於類本身作陣列使用,所以用

this作索引器的名稱,索引器有索引引數值。例:

using system;

using system.collections;

class mylistbox

else

}set

else if (idx = data.count)

else}}

}} 盡可能編寫出執行效率更高,更健壯,更容易維護的c#**。

盡可能的使用屬性(property),而不是資料成員(field)。

private   int   property1   

public     int   property1   

set   

}//例項屬性,可讀可寫

public int strcount

set}

class b

set}

}

NGUI UICamera屬性介紹

ngui uicamera param use mouse 決定camera是否會響應滑鼠事件。use touch decide camera 是否會響應觸控事件。use keyboard 是否響應鍵盤事件。onkey傳送 use controller 是否允許傳送遊戲手柄事件 onkey傳送 ev...

Web Service屬性介紹

每個 web service都需要唯一的命名空間,它可使客戶端應用程式區分出可能使用相同方法名稱的 web service。在 visual studio.net中建立的web service的預設命名空間是 儘管命名空間類似於典型的url,但在web瀏覽器中是不能檢視的,它只是乙個唯一識別符號。w...

AccessRule屬性介紹

acf accessrules 訪問控制過濾器的屬性 actions 設定哪個動作匹配此規則。users 設定哪個使用者匹配此規則。此當前使用者的name 被用來匹配,三種設定字元在這裡可以用 任何使用者,包括匿名和驗證通過的使用者。。驗證通過的使用者。roles 設定哪個角色匹配此規則。這裡用到了...