c#類的函式成員
共分為以下幾種:
建構函式
析構函式
類的方法
類的靜態方法
屬性運算子
索引器
一、方法
乙個類中包含很多形形色色的方法。它與普通的方法很類似。
class
mathtest
public
static
intgetsquareof
(int x)
//靜態方法
public
static
double
getpi()
//靜態方法
}
二、屬性
屬性的概念是:它是乙個方法或一對方法,它可以對欄位進行讀和寫或者唯讀不寫,只寫不讀。
為什麼需要屬性?
當我們相對字段進行操作時,在顯示中往往有一些約束。
例如我們想對字段age賦值時希望其值大於0小於150.
例如我們想對某欄位只能讀不能寫
例如我們相對乙個私有字段進行訪問但不想破壞私有性
class myclass
//經過這種方式就可以返回私有欄位age的值了
set//經過這種方式可以設定私有欄位age,注意這裡的value預設的一種規範
}private
int age2;
public
int age2
set}
}//使用
console.
writeline
(myclass.age)
;//將age輸出,注意使用的時候需要用age不是age
myclass.age=
200;
//因為age是私有資料成員本不能賦值的,但是因為有屬性在,就可以利用屬性進行賦值和讀取了。
console.
writeline
(myclass.age)
;//重新的輸出age,這裡的age就是200
由上面的**我們可以看出來,這裡的age是私有資料成員,正常情況是不可能對其進行賦值的,但是有屬性的作用下我們可以進行賦值。整個過程是這樣的。myclass.age=200;是會呼叫public int age屬性。首先會將200賦值給value。然後執行屬性中的set,將value的值賦值給age即完成了賦值的操作。同理,讀取的時候回執行屬性中的get函式,它會將age返回給呼叫方。
age2的屬性中的設定需要進行判斷,如果大於150則按照150的來算,如果不大於150就按照實際賦值的來算。如此便可以達到控制輸入資料大小的目的。這也是屬性的優點。
屬性的唯讀和只寫
如上**可對age進行讀和寫。但是如果我們想要對某個字段唯讀的話,只要將set刪除即可
private
int age;
public
int age
//只有get,則age就只能夠讀不能夠寫
}
同樣的也可對某個欄位只寫不讀。只要刪除get而保留set即可。
另外get和set訪問器也可設定訪問級別。例如
get
private set
當然也可自動實現屬性
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace test
//直宣告乙個屬性這裡沒有宣告age,因為程式會自動的宣告private int age;編譯器會自動建立它。只不過這種情況下無法實現欄位的邏輯合理性。
}class
program
}}
C 類的函式成員之建構函式
c 類的函式成員 共分為以下幾種 建構函式 析構函式 類的方法 類的靜態方法 屬性運算子 索引器 三 建構函式 建構函式是乙個類被例項化為物件時首先呼叫的乙個函式。它只被呼叫以此,且在類例項化的時候。所以通常類的建構函式用來進行初始化的一些工作。建構函式的結構如下 public class mycl...
C 類成員之屬性
class phonecustomer set 示例中變數名為 firstname 的字段改為私有,firstname屬性包含 get 和 set 訪問器,來檢索和設定支援欄位的值。get訪問器不帶任何引數,且必須返回屬性宣告的型別。也不應為 set 訪問器指定任何顯式引數,但編譯器假定它帶乙個引數...
C 類 const修飾普通成員函式
const修飾變數一般有兩種方式 const t a,或者t const a,這兩者都是一樣的,主要看const位於 的左邊還是右邊,這裡不再贅述,主要來看一下當const修飾類的成員函式時,成員函式有什麼特點。類的成員函式後面加 const 表面這個函式不會對這個類物件的資料成員 準確的說是非靜態...