C中的get和set訪問器怎麼理解和使用

時間 2022-02-03 16:10:07

1樓:火舞蝶衣

屬性的訪問器包含與獲取(讀取或計算)或設定(寫)屬性有關的可執行語句。訪問器宣告可以包含 get 訪問器或 set 訪問器,或者兩者均包含。宣告採用下列形式之一:

get {}

set {}

get 訪問器

get 訪問器體與方法體相似。它必須返回屬性型別的值。執行 get 訪問器相當於讀取欄位的值。以下是返回私有欄位 name 的值的 get 訪問器:

private string name; // the name field

public string name // the name property

}當引用屬性時,除非該屬性為賦值目標,否則將呼叫 get 訪問器讀取該屬性的值。例如:

employee e1 = new employee();

...console.write(e1.name); // the get accessor is invoked here

get 訪問器必須在 return 或 throw 語句中終止,並且控制不能超出訪問器體。

set 訪問器

set 訪問器與返回 void 的方法類似。它使用稱為 value 的隱式引數,此引數的型別是屬性的型別。在下例中,set 訪問器被新增到 name 屬性:

public string name

set}當對屬性賦值時,用提供新值的引數呼叫 set 訪問器。例如:

e1.name = "joe"; // the set accessor is invoked here

在 set 訪問器中對區域性變數宣告使用隱式引數名 (value) 是錯誤的。

備註屬性按如下方式,根據所使用的訪問器進行分類:

只帶有 get 訪問器的屬性稱為只讀屬性。無法對只讀屬性賦值。

只帶有 set 訪問器的屬性稱為只寫屬性。只寫屬性除作為賦值的目標外,無法對其進行引用。

同時帶有 get 和 set 訪問器的屬性為讀寫屬性。

在屬性宣告中,get 和 set 訪問器都必須在屬性體的內部宣告。

使用 get 訪問器更改物件的狀態是一種錯誤的程式設計樣式。例如,以下訪問器在每次訪問 number 欄位時都產生更改物件狀態的***。

public int number

}可以將 get 訪問器用於返回欄位值,或用於計算欄位值並將其返回。例如:

public string name

}在上述**段中,如果不對 name 屬性賦值,它將返回值 na。

示例 1

此例說明如何訪問基類中被派生類中具有同一名稱的另一個屬性隱藏的屬性。

// property_hiding.cs

// property hiding

using system;

public class baseclass

set }}

public class derivedclass : baseclass

set }}

public class mainclass

",d1.name);

((baseclass)d1).name = "mary"; // base class property

console.writeline("name in the base class is: ",

((baseclass)d1).name); }}

輸出name in the derived class is: john

name in the base class is: mary

以下是上例中顯示的重點:

派生類中的屬性 name 隱藏基類中的屬性 name。在這種情況下,派生類的該屬性宣告使用 new 修飾符:

public new string name

{...

轉換 (baseclass) 用於訪問基類中的隱藏屬性:

((baseclass)d1).name = "mary";

2樓:匿名使用者

c#為了提高安全性, 推薦將私有變數進行封裝, 外界通過屬性來訪問私有成員變數, 他提供了兩個訪問其

get訪問其是獲取成員變數裡的值, set訪問其是存入值

3樓:匿名使用者

假設型別為t

private t _mypropertypublic t myproperty

set}

編譯最終生產方法

t get_myproperty()

void set_myproperty(t value)在外部使用時例如:

myproperty = new t();

呼叫set_myproperty方法將new t()傳入;

t x = myproperty;

呼叫get_myproperty()來返回結果

html中get和post的區別和使用

1 get是用來從伺服器上獲得資料,而post是用來向伺服器上傳遞資料。2 get將表單中資料的按照variable value的形式,新增到action所指向的url後面,並且兩者使用 連線,而各個變數之間使用 連線 post是將表單中的資料放在form的資料體中,按照變數和值相對應的方式,傳遞到...

C的winform如何訪問和操作SQL2019資料庫

方法有倆 其一 利用三層架構,在資料訪問層裡面寫與資料庫連線字串,然後用sqlconnetion物件接收一下就行了 其二 直接在專案中新增一個dbhelper類用來建立與資料庫的連線,在類中同樣也寫與資料庫連線字串,然後用sqlconnetion物件接收就好了!但前提是要先引用名稱空間 using ...

C中在子類中訪問父類成員的關鍵字是什麼

最紳士的痞子灬 使用base.呼叫父類裡面的屬性 public class parent public class child parent 1 父類不能直接強制轉換成子類 2 子類可以強制轉換成父類,但是在父類中只能取父類的欄位與方法因此在一個父類對應多個子類的時候,不知道具體是哪個子類的時候,就...