麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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)、訪問程序集中的元數據,比如說,方法屬性修 主站蜘蛛池模板: 黄色毛片观看 | 日韩精品免费一区二区三区 | 香蕉秀| 精国品产一区二区三区有限公司 | 美女被免费网站在线软件 | 看黄在线| 国产精品亚洲激情 | 88xx成人永久免费观看 | 日本a大片 | 日韩字幕在线观看 | 亚洲日本高清 | 嗯~啊~弄嗯~啊h高潮视频 | 一级片a | 大学生a级毛片免费视频 | 九九热精品在线视频 | 红桃一区| 国产成人精品一区在线播放 | 亚洲操比视频 | 久久久久久久久久久久久久国产 | 超碰97人人艹 | 一区二区三视频 | 免费高潮在线国 | 自拍亚洲伦理 | 国产精品视频一区二区三区四区国 | 日本中文字幕网址 | 国产成人高潮免费观看精品 | 久草在线最新免费 | 色交视频 | 国产午夜亚洲精品 | 日韩视频区 | 欧美18—19sex性hd | 黄色片网站在线看 | 色婷婷av一区二区三区久久 | 成人h精品动漫一区二区三区 | 成人毛片在线 | 国产一级大片在线观看 | 91午夜免费视频 | 久久久大片| 亚洲第九十九页 | 日韩视频一区二区三区在线观看 | 国产精品自拍av |