淺析C# get方法
下面是筆者總結的C# get學習筆記,從多方面介紹了C# get的運用方法,從簡單的原理,
到發(fā)雜的應用。
C#中屬性是類,接口,結構的命名成員,可以通過C# get set訪問器訪問私有成員.如
- public class Animal { privatestringname; public string Name
get { return name; } set { name = value; } }
通常屬性名稱與要訪問的內部成員名稱相同,但是***個字母要大寫,如Name,
否則內部成員要帶一個_前綴
set中的隱式參數value具有基礎成員變量的類型(就是屬性類型).
- class TestAnimal{ static void Main() {
Animal animal = new Animal(); animal.Name = "Lion";
// set System.Console.WriteLine(animal.Name);
// get }}
在TestAnimal類中可以通過Name的C# get,set方法巧妙的訪問和設置Animal類的私有成員name.如果一個屬性僅有C# get 訪問器,則它為只讀屬性。如果它僅有 set 訪問器,則為只寫屬性。如果它同時具有這兩種訪問器,則為讀寫屬性。C# get訪問器中,必須在return或throw中中止,C# get訪問器中更改對象的狀態(tài)是一種錯誤的編程樣式.如
- public int Nember { return nember++;//別這樣做 }
但是返回字段值,或計算字段值返回如
- 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 將派生類對象轉換為基類對象,再訪問基類中的屬性。以上就是對C# get
的學習感想,希望能給大家?guī)韼椭?/P>
【編輯推薦】