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

2022-02-06 05:27:42 字數 2482 閱讀 3566

1樓:俎瑰瑋

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

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

2樓:陡變吧

get和set是一種特定的方法,get用來從物件中讀取資料,而set用來向字段寫入資料, 將外界的資料寫入欄位時,c#使用value表示輸入的資料。 屬性的讀寫控制 屬性中的get和set可以只用乙個,如果只有get而沒有set,那麼這個屬性只可讀出,不可寫入; 如果只有set而沒有get,那麼這個屬性是只寫入,不可讀出。 設計欄位是為了便於內部方法使用,而盡量與外界隔絕; 設計屬性考慮的是方便外界的使用,但是不讓外界知道的資料一律不給。]

3樓:偶端利

假設型別為t private t _myproperty public t myproperty set } 編譯最終生產方法 t get_myproperty() void set_myproperty(t value) 在外部使用時例如: myproperty = new t(); 呼叫set_myproperty方法將new t()傳入; t x = myproperty; 呼叫get_myproperty()來返回結果]

4樓:首贏軍團

net/blog/index.php屬性的訪問器包含與獲取(讀取或計算)或設定(寫)屬性有關的可執行語句。訪問器宣告可以包含 get 訪問器或 set 訪問器,或者兩者均包含。

宣告採用下列形式之一:get {}set {}get 訪問器get 訪問器體與方法體相似。它必須返回屬性型別的值。

執行 get 訪問器相當於讀取欄位的值。以下是返回私有字段 name 的值的 get 訪問器:private string name; // the name fieldpublic string name // the name property}當引用屬性時,除非該屬性為賦值目標,否則將呼叫 get 訪問器讀取該屬性的值。

例如:employee e1 = new employee();...console.

write(e1.name); // the get accessor is invoked hereget 訪問器必須在 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 hidingusing 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:

johnname in the base class is: mary以下是上例中顯示的重點: 派生類中的屬性 name 隱藏基類中的屬性 name。

在這種情況下,派生類的該屬性宣告使用 new 修飾符: public new string name { ...轉換 (baseclass) 用於訪問基類中的隱藏屬性:

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

Java中的Get和Set方法有什麼實際意義

get 和set 有乙個好處,當輸 62616964757a686964616fe78988e69d8331333365646232入.get set 時就能顯示所有的屬性。把所有設定都歸納起來,對於外部的使用都方便而已。1 靈活性 比如我們有乙個person類,我們給它設定乙個屬性name,但是我...

在H3C路由器中如何進行不同網段訪問,及配置

配置有很多,記住一點即可,在三層中訪問只要路由表中有這條路由即可 可以配置靜態路由,也可以起協議,比如rip,ospf等 h3c er5200路由器,怎麼設定不同網段同時上網 按照附件配置即可,希望能幫到你。第乙個網段是192。168.1.0 我沒改,你的路由應該是192.168.2.0,不要誤導你...

如何訪問domino伺服器中的郵件資料

跟普通的郵件伺服器一下,設定pop3及 tp伺服器即可收發郵件 pop3 tp imap 登入domino的web或者客戶端就可以了 如何把domino所有使用者接收和傳送的郵件都自動地拷貝到乙個資料庫中 可以來通過使用 郵件訊息日誌 和源 伺服器郵件規則 來實現。具體的步驟如下 1.開啟domin...