c#
中的修飾符有很多,可以分類:
類修飾符,訪問修飾符,成員修飾符。
public
,inner
,friend
,abastruct
,sealed
public class classpublic{}
如果乙個類宣告為
public
,則該類的應用不受限制。具體含義可與
inner
參考對比。
inner class classinner{}
如果乙個類宣告為
inner
,則該類只在程式集中可見。可以理解成在同乙個
dll或
exe中可以應用該類,但是出了該程式集,則該類就不可見了。例如:
程式集as**1
中有乙個
public
的類classpublic
乙個inner
的類classinner
。在程式集
as**2
中有乙個類
classtest
:class classtest
abstract class classabstract
} 表示
classabstract demo3 = new classabstract();
這句話通不過編譯【是錯誤的】,因為該類是乙個抽象類。
如果某個類中包含了乙個抽象函式,則這個類必須是乙個抽象類。
抽象函式:只有函式的宣告而沒有實現**的函式。試想:如果
classabstract
類中有個抽象函式
functionabstract
。demo3.functionabstract()
將會怎麼執行?不知道怎麼執行,因為
functionabstract
函式沒有實現**。這不亂套了嗎?
所以不允許
new乙個抽象類。
sealed class classsealed{}
類classsealed
的意思是不允許被繼承。即:
class classsealedchild : classsealed{}
是錯誤的。
用sealed
修飾的類叫密封類。
class class1{}
sealed class class : class1{}
這句話是正確的。
成員修飾符:
public, private, protected, virtual, override, abstract, sealed, static, const,readonly,
乙個函式,變數,屬性可以是
public
型別的,即是公共型別。類之外的函式可以呼叫這個成員。
例如:class class1
class class2
} class class3 : class1
protected string str3;
乙個函式,變數,屬性可以是
protected
型別的,即是保護型別。本類及其本類的派生類可以訪問。
private string str2;
乙個函式,變數,屬性可以是
private
型別的,即是私有型別。類之外的函式不可以呼叫這個成員。
inner string str3;
乙個函式,變數,屬性可以是
inner
型別的,即只有在同乙個程式集中才可以訪問。
inner protected string str4;
protected inner string str5;
這兩個變數表示在同乙個程式集或者是當前類的派生類才可以訪問。
注意:這裡不是指:當前類的派生類而且是在同乙個程式集中。
virtual void test()
虛函式,參考
override
修飾符。
abstract void test();
abstract string teststr
沒有實現**的函式或屬性。包含抽象函式或屬性的類必須是抽象類。
class class1
void test2()
}class class2 : class1
}class class3 : class2
}class class4 : class2
class1 demo1 = new class1();
demo1. test2();// test2
中呼叫的是
class1
中的test
函式。class2 demo2 = new class2();
demo2. test2();// test2
中呼叫的是
class2
中的test
函式。因為
class2
重寫了class1
中的test
函式class3 demo3 = new class3();
demo3. test2();// test2
中呼叫的是
class3
中的test
函式。因為
class2
重寫了test
函式class4 demo4 = new class4();
demo4. test2();// test2
中呼叫的是
class2
中的test
函式。因為
class4
沒有重寫
test
,所以它執行其父類**。
sealed
可以用來秘方虛函式或抽象函式。例如:
class class1
}class class2 : class1
}class class3 : class2
}class class1
c#中,靜態變數/函式
/屬性表示可以通過類名訪問的變數/函式
/屬性。表示該變數/函式
/屬性是屬於類的,而不是屬於物件的
class class2
readonly
可以修飾靜態變數,表示該變數不可以修改。即靜態唯讀變數。
static readonly
與const
類似。我們可以用只實現
get方法的屬性類實現與
static readonly
相似的功能,但是比
static readonly
方便的地方就是屬性中可以有變數。
例如:static string txt = 「txt」;
static string txt2 = txt + 「
1234」
;//錯誤static string txt3
}class class1
常量很類似於靜態唯讀變數。
public
delegatestring onmovehandler(string name, int id);
宣告乙個委託,名稱叫
onmovehandler
,該委託的返回型別為
string
,該委託的引數為
string name, int id
。public event onmovehandler onmove;
宣告乙個事件,該事件的名稱為
onmove
,型別為
onmovehandler
。該事件的返回型別
string
,引數為
string name, int id
給事件賦值:
private string mymove(string name, int id)
onmove += new onmovehandler(mymove);
C 中的訪問修飾符 修飾符 類
版本visual studio 2010 主要參考 修飾符用於修改型別和型別成員的宣告 訪問修飾符 訪問級別 public 訪問不受限制 類內和任何類外中訪問 protected 可訪問域限定於類內或從該類派生的類內 類內和該類的派生類 internal 可訪問域限定於類所在的程式集內 該類所在程式...
C 中的修飾符
c 辨析系列談 本文主要是參考網上的一篇文章,對c 中的一些重要修飾符和函式 static,const,inline,虛函式 進行分析,一方面可以加深對c 的認識和理解 另一方面也是拋磚引玉,希望大家都參與討論,共同提高。l static修飾符 static 是c 中很常用的修飾符,它被用來控制變數...
C 中的修飾符
1.可空型別修飾符 引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空。例如 string str null 是正確的,int i null 編譯器就會報錯。為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符 來表示,表現形式為 t?例如 int?表示可空的整形,datet...