国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

那些年,我還在學(xué)習(xí)C# 學(xué)習(xí)筆記

2020-01-24 03:42:15
字體:
供稿:網(wǎng)友
C#是一門面向?qū)ο蟮恼Z言,具有面向?qū)ο蟮幕咎卣鳎橄蟆⒎庋b、繼承、多態(tài)等性質(zhì)。學(xué)習(xí)C#除了一些基本的語法,還得學(xué)習(xí)一些新的特性,比如說:泛型、多線程、集合、反射等,下面就選其中一些來學(xué)習(xí)吧!
一、C#中的各種器
A、 C#構(gòu)造器-構(gòu)造函數(shù)
如下:
復(fù)制代碼 代碼如下:

//構(gòu)造器1
public Products(int id)
{
_Id = id;
}
//構(gòu)造器2,使用this來調(diào)用構(gòu)造器1
public Products(int id, string Name, string Band)
: this(id)
{
_ProductName = Name;
_ProductBand = Band;
}

靜態(tài)構(gòu)造器-用來對類進(jìn)行初始化信息,它不是顯示調(diào)用的,在首次訪問類時將自動調(diào)用,用來初始化類的一些基本信息而不是對象,但最好不要使用靜態(tài)的構(gòu)造器,代碼如下:
復(fù)制代碼 代碼如下:

static Products() { }//靜態(tài)構(gòu)造器
public Products() { }

B、初化器-在沒有帶參數(shù)的構(gòu)造器時,我們可以用初始化器對對象的共公屬性進(jìn)行初始化
如下:
復(fù)制代碼 代碼如下:

//產(chǎn)品的集合List
List<Products> ListProduct = new List<Products>()
{
new Products() { _Id = 1, _ProductName = "whc" },//使用{}是調(diào)有用初始化器,對屬性進(jìn)行初始化
new Products() { _Id = 1, _ProductName = "whc1", _ProductBand = "ctbu" },
new Products() { _Id = 1, _ProductName = "whc2", _ProductBand = "ctbu" }
};

C、終結(jié)器
終結(jié)器是在一次對象最后一次活動之后,并在程序終止之前執(zhí)行。拉圾回收器會在回收過程中,找到帶有終結(jié)器的對象,然后加入到終結(jié)隊列,線程遍歷完了,就調(diào)用終結(jié)隊列上對象的終結(jié)器來回收資源
二、C#中那些重要的知識
A、委托與事件
委托
C#中將一個方法作為一個參數(shù)傳遞給其它方法使用,實現(xiàn)這樣功能的模式叫做委托
1、委托的類型:是強類型,因為在聲明委托方法時,指定的參數(shù),在調(diào)用這個委托時必須傳遞相同類型的參數(shù)與參數(shù)個數(shù)
2、委托的內(nèi)部機制:C#中所有的委托都繼承自System.Delegate,但是我們不能繼承它來實現(xiàn)自定義的委托,可以使用delegate關(guān)鍵字來定義
3、委托的定義:使用delegate關(guān)鍵字來使用
4、委托的實例化:定義一個與委托相同類型的函數(shù),作為委托的參數(shù)傳遞,不需要用new關(guān)鍵字進(jìn)行實例化,它可以通過委托推斷,在C#1.0中,在傳遞方法時,需要用new delegate(Method)
5、委托的使用:
復(fù)制代碼 代碼如下:

class DelegateClass
{
//一個泛型的委托,可以不同類型的參數(shù)進(jìn)行處理
public delegate void AlculateMethod<T>(T first, T second);
}
class MehtodConllection
{
public void AlculateAdd<T>(T first, T second)
{
string third = first.ToString() + second.ToString();
System.Console.WriteLine(third);
}
public void AlculateDelete(int first, int second)
{
System.Console.WriteLine(first - second);
}
public void AlculateAddOther<T>(T first, T second)
{
string third = first.ToString() + "Hello Word" + second.ToString();
System.Console.WriteLine(third);
}
}
private static void _Demo4()
{
//方法的集合
MehtodConllection mc = new MehtodConllection();
//泛型的委托聲明
DelegateClass.AlculateMethod<string> Demo = null;
//添加委托方法
Demo += mc.AlculateAdd<string>;
//
Demo += mc.AlculateAddOther<string>;
//調(diào)用方法,所有在委托中的方法都能被執(zhí)行
Demo("str", "sterte");
}

事件
事件是一種特殊的委托,在聲明委托時,添加一個event關(guān)鍵字
步驟:
1、定義委托的類型,相當(dāng)于一個類,如: public delegate void ActionMethod();
2、定義事件委托變量,用1、中的委托類型定義,如: public event ActionMethod amd;
3、調(diào)用定義的事件,觸發(fā)器,如:
復(fù)制代碼 代碼如下:

class Cat
{
//定義委托方法
public delegate void ActionMethod();
//聲明事件委托
public event ActionMethod amd;
//觸發(fā)事件
public void CatShout()
{
System.Console.WriteLine("貓叫了,事件觸發(fā)了!!!");
amd();
}
}

4、向事件中添加方法,將方法與事件綁定在一起,以便在觸發(fā)時一起執(zhí)行,如:
復(fù)制代碼 代碼如下:

private static void _Demo15() {
Cat cat = new Cat();
HostPerson hp = new HostPerson();
Mouse mouse = new Mouse();
cat.amd += mouse.runing;
cat.amd += hp.WeekUp;
cat.CatShout();
}

5、最后觸發(fā)事件
B、反射與特性
反射
1、反射的作用:
(1)、訪問程序集中的元數(shù)據(jù),比如說,方法屬性修 主站蜘蛛池模板: 平定县| 广宁县| 娄烦县| 安阳县| 霍城县| 瓦房店市| 阿拉尔市| 梁山县| 射洪县| 洪泽县| 大同市| 蕲春县| 望都县| 普洱| 张家界市| 蓝山县| 兴义市| 保定市| 苏州市| 临邑县| 顺义区| 二手房| 和林格尔县| 晴隆县| 元江| 达日县| 禹城市| 克什克腾旗| 循化| 徐水县| 宽甸| 黔南| 公安县| 方山县| 芦溪县| 应城市| 永修县| 虎林市| 永康市| 漾濞| 云浮市|