淺析C# get方法
下面是筆者總結(jié)的C# get學(xué)習(xí)筆記,從多方面介紹了C# get的運(yùn)用方法,從簡(jiǎn)單的原理,
到發(fā)雜的應(yīng)用。
C#中屬性是類,接口,結(jié)構(gòu)的命名成員,可以通過C# get set訪問器訪問私有成員.如
- public class Animal { privatestringname; public string Name
get { return name; } set { name = value; } }
通常屬性名稱與要訪問的內(nèi)部成員名稱相同,但是***個(gè)字母要大寫,如Name,
否則內(nèi)部成員要帶一個(gè)_前綴
set中的隱式參數(shù)value具有基礎(chǔ)成員變量的類型(就是屬性類型).
- class TestAnimal{ static void Main() {
Animal animal = new Animal(); animal.Name = "Lion";
// set System.Console.WriteLine(animal.Name);
// get }}
在TestAnimal類中可以通過Name的C# get,set方法巧妙的訪問和設(shè)置Animal類的私有成員name.如果一個(gè)屬性僅有C# get 訪問器,則它為只讀屬性。如果它僅有 set 訪問器,則為只寫屬性。如果它同時(shí)具有這兩種訪問器,則為讀寫屬性。C# get訪問器中,必須在return或throw中中止,C# get訪問器中更改對(duì)象的狀態(tài)是一種錯(cuò)誤的編程樣式.如
- public int Nember { return nember++;//別這樣做 }
但是返回字段值,或計(jì)算字段值返回如
- public string Name
- {
- return name != null ? name : "N/A" ;
- }
- using System;public class BaseClass
- {private string name;public string Name
- { get { return name; } set { name = value; }}}
如何訪問基類中被派生類同一名稱的屬性覆蓋的屬性:
- public class DerivedClass : BaseClass {
private string name;public new string Name- //使用new修飾符覆蓋基類中的Name
- { get
{ return name; } set { name = value; } } }
public class MainClass {public static void Main() {
DerivedClass d1 = new DerivedClass(); d1.Name = "John";- // Derived class property Console.WriteLine("Name in the derived class is: {0}",d1.Name); ((BaseClass)d1).Name = "Mary";
- // Base class property Console.WriteLine("Name in the base class is: {0}", ((BaseClass)d1).Name);
- }
C# get輸出:
Name in the derived class is: John
Name in the base class is: Mary
將(BaseClass)d1).Name 將派生類對(duì)象轉(zhuǎn)換為基類對(duì)象,再訪問基類中的屬性。以上就是對(duì)C# get
的學(xué)習(xí)感想,希望能給大家?guī)韼椭?/P>
【編輯推薦】

















