a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

那些年,我還在學習C# 學習筆記

2020-01-24 03:42:15
字體:
來源:轉載
供稿:網友
C#是一門面向對象的語言,具有面向對象的基本特征,抽象、封裝、繼承、多態等性質。學習C#除了一些基本的語法,還得學習一些新的特性,比如說:泛型、多線程、集合、反射等,下面就選其中一些來學習吧!
一、C#中的各種器
A、 C#構造器-構造函數
如下:
復制代碼 代碼如下:

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

靜態構造器-用來對類進行初始化信息,它不是顯示調用的,在首次訪問類時將自動調用,用來初始化類的一些基本信息而不是對象,但最好不要使用靜態的構造器,代碼如下:
復制代碼 代碼如下:

static Products() { }//靜態構造器
public Products() { }

B、初化器-在沒有帶參數的構造器時,我們可以用初始化器對對象的共公屬性進行初始化
如下:
復制代碼 代碼如下:

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

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

class DelegateClass
{
//一個泛型的委托,可以不同類型的參數進行處理
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>;
//調用方法,所有在委托中的方法都能被執行
Demo("str", "sterte");
}

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

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

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

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、最后觸發事件
B、反射與特性
反射
1、反射的作用:
(1)、訪問程序集中的元數據,比如說,方法屬性修 主站蜘蛛池模板: 亚洲欧美日韩精品 | 亚洲精品一区二三区不卡 | 成人在线小视频 | www.中文字幕.com| 免费看爱爱视频 | 九九热在线免费视频 | 日本一区二区精品视频 | 狠狠色视频 | 在线看黄色av | 亚洲精品无 | 黄色片在线免费播放 | 91免费国产 | 综合久草 | 范冰冰一级做a爰片久久毛片 | 精品欧美一区二区三区久久久 | 青青av在线 | 三级av网站 | 亚洲在线| 国产免费一区 | 九九在线视频 | 国产91精品一区二区绿帽 | 澳门久久| 国产精品欧美综合 | 亚洲精品欧美视频 | 超碰中文字幕 | 欧美成人一区二区三区 | av一区二区三区 | 成人免费视频视频在线观看 免费 | 久久久久久久久久一区二区 | 欧美日日 | 免费观看一级特黄欧美大片 | 日日碰碰 | 影视一区二区 | 久久午夜电影院 | 海外中文字幕在线观看 | av 一区二区三区 | 欧美午夜一区二区 | 日本成年人免费网站 | 一区二区精品 | 欧美一区久久 | 在线日韩|