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
|