亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

Effective C# 使用成員初始化器而不是賦值語句

2024-07-10 13:23:33
字體:
來源:轉載
供稿:網友
一般情況下,一個類都會有多個構造函數。隨著時間的推移,成員變量、構造函數不斷增加。為了處理這種情況最方便的辦法就是:在聲明變量的時候進行初始化,而不是在每個構造函數中進行。無論是類成員(靜態變量)合適實例變量,我們都應該充分利用初始化器的語法。

C#編程在,一般在聲明一個變量的同時我們會對其進行初始化:

復制代碼 代碼如下:


1 class Employee
2 {
3 private List<Employee> empList = new List<Employee>();
4 }


不論我們為Employee類添加了多少個構造函數,empList變量都能夠被正確的初始化,這是因為:

編譯器會在所有的構造函數(包括默認構造函數)的最開始位置生成代碼來為所以的實例成員變量定義初始化器(進行初始化);所以我們不需要再構造函數中為每一個定義的成員變量添加初始化代碼——直接在聲明的時候初始化即可。

初始化器可以看做是構造函數中初始化語句的另一種表示。初始化器生成的代碼會插入到構造函數代碼前面執行。初始化器將在為類型執行調用基類構造函數之前執行,其順序與類成員變量聲明的順序一樣。

  C#的初始化器語法是一種最簡單的、能夠避免類型中存在未初始化變量的解決辦法。但是在下面的三種情況下應該避免使用初始化器:

1.初始化對象為0或null時
  因為系統默認的初始化會將會在所有代碼執行前把一切都設置成0或者null(值類型和引用類型)。而且這一步的操作是位于很底層的實現,我們也可以直接將對象賦值設置為0或null,但是顯然這是多余的。

2.對同一個變量執行不同的初始化方式
  使用初始化語句的一個前提是:所有得構造函數都將為該變量設置同樣的值。我們看下面的示例代碼:

復制代碼 代碼如下:


class Employee
{
//聲明變量的同時進行初始化
private List<Employee> empList = new List<Employee>();

public Employee()
{
}

public Employee(int size)
{
empList = new List<Employee>(size);
}
}


在上面的代碼中,當我們調用第二個構造函數創建初始化指定大小的泛型集合時 ,實際上時創建了兩個List<Employee>。第一個創建后馬上變成了垃圾——這是由于初始化器將在所有構造函數之前執行。編譯器生成的代碼類似于下面的這段代碼:

復制代碼 代碼如下:


class Employee
{
//聲明變量
private List<Employee> empList;

public Employee()
{
empList = new List<Employee>();
}

public Employee(int size)
{
empList = new List<Employee>();
empList = new List<Employee>(size);
}
}


我們可以看到這樣做會影響程序的效率,創建了不必要的對象,所以如果需要在不同的構造函數中執行不同的初始化方式時正確的做法應該是不適用初始化器,而是先聲明變量,然后在構造函數中進行成員變量的初始化,如下:

復制代碼 代碼如下:


class Employee
{
//聲明變量
private List<Employee> empList;

public Employee()
{
empList = new List<Employee>();
}

public Employee(int size)
{
empList = new List<Employee>(size);
}
}


3.需要進行異常處理
  初始化器無法被try語句包裹。所以對象初始化器執行的過程中發生異常都會被傳遞到對象之外。如果在初始化對象的時候可能會拋出異常時我們應該將這部分代碼放到構造函數中,對其進行異常處理。這樣才能夠實現必要的恢復性代碼,以創建類型實例并以更友好的方式處理異常。

小節:
  成員初始化器是保證類型中成員變量都被初始化的最簡單方法——在聲明變量時就對其進行初始化,無論調用的是那個構造函數,初始化器都將會在所有構造函數之前執行。這種語法也避免了在添加新的構造函數時遺漏掉重要的初始化代碼。所以,如果對于所有的構造函數某個成員變量的初始化值是一樣的,那么就應該盡量使用初始化器語法。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情第1页| 久久人人97超碰精品888| 91精品国产91久久久| 国产91精品网站| 久久精品国亚洲| 日韩av免费看| 成人国产亚洲精品a区天堂华泰| 91国产精品91| 欧美成人h版在线观看| 日韩av影视综合网| 国产成人在线视频| 日韩av手机在线| www.亚洲成人| 日韩久久精品成人| 成人欧美一区二区三区黑人孕妇| 亚洲国产黄色片| 亚洲国内高清视频| 亚洲精品欧美极品| 欧美日韩国产在线播放| 色综合天天综合网国产成人网| 精品国产一区av| 日韩精品视频免费专区在线播放| 亚洲码在线观看| 亚洲人成电影在线| 亚洲影院色无极综合| 亚洲综合在线做性| 神马久久桃色视频| 日本三级韩国三级久久| 日韩亚洲欧美中文在线| 91高潮精品免费porn| 亚洲电影第1页| 91在线看www| 日韩网站免费观看| 热久久免费视频精品| 国产精品99久久久久久久久| 国产精品国产福利国产秒拍| 成人午夜在线视频一区| www.日本久久久久com.| 黑人精品xxx一区一二区| 国产午夜精品理论片a级探花| 美乳少妇欧美精品| 一区二区三区国产在线观看| 精品国产91久久久久久老师| www.国产一区| 日韩视频免费看| 亚州国产精品久久久| 精品国内自产拍在线观看| 亚洲va欧美va国产综合久久| 国产精品福利在线观看网址| 国产99视频精品免视看7| 亚洲视频第一页| 欧美日韩在线观看视频| 原创国产精品91| 国产精品久久久久久搜索| 精品亚洲男同gayvideo网站| 亚洲人成人99网站| 成人欧美一区二区三区在线湿哒哒| 日韩欧美在线观看视频| 久久躁狠狠躁夜夜爽| 日韩精品中文字幕视频在线| 久久精品国产亚洲精品| 91老司机精品视频| 亚洲第一福利网| 久久国内精品一国内精品| 亚洲国产精品热久久| 欧美一级大胆视频| 亚洲欧美国产精品久久久久久久| 国产日韩精品在线| 国产精品美腿一区在线看| 欧洲美女免费图片一区| 九九九热精品免费视频观看网站| 在线性视频日韩欧美| 亚洲精品在线视频| 欧美日韩高清区| 色婷婷av一区二区三区久久| 国产精品jvid在线观看蜜臀| 日本中文字幕不卡免费| 91av成人在线| 亚洲综合成人婷婷小说| 日韩精品极品在线观看播放免费视频| 欧美在线日韩在线| 日韩小视频在线| 日韩中文字幕av| 亚洲美女中文字幕| 精品久久久久久久中文字幕| 亚洲小视频在线观看| 精品成人av一区| 国产精品高潮在线| 国产精品成人播放| 日韩av中文在线| 久久韩国免费视频| 日韩精品中文字幕久久臀| 日韩中文av在线| 日本道色综合久久影院| 精品久久久久久久中文字幕| 疯狂做受xxxx高潮欧美日本| 国产精品午夜一区二区欲梦| 久久这里只有精品视频首页| 日韩在线观看av| 日韩av男人的天堂| 热99精品只有里视频精品| 久久综合免费视频影院| 国产成人精品综合久久久| 久久久久成人精品| 亚洲欧洲在线播放| 日韩av在线高清| 久久成人精品电影| 亚洲成人激情在线观看| 国产成人拍精品视频午夜网站| 成人精品福利视频| 国产欧美 在线欧美| 欧美日韩亚洲网| 亚洲精品国产精品国产自| 亚洲影视中文字幕| 国产精品欧美激情| 亚洲精品天天看| 亚洲国产美女久久久久| 亚洲欧洲高清在线| 成人黄色免费网站在线观看| 成人精品福利视频| 日韩在线视频观看正片免费网站| 午夜精品福利在线观看| 色哟哟亚洲精品一区二区| 在线看日韩欧美| 中文日韩电影网站| 国产精品视频一| 大胆欧美人体视频| 一区二区三区久久精品| 精品免费在线观看| 视频直播国产精品| 国产视频亚洲精品| 日韩黄色在线免费观看| 日韩精品在线免费| 亚洲精品日韩丝袜精品| 粉嫩av一区二区三区免费野| 超碰91人人草人人干| 91夜夜揉人人捏人人添红杏| 久久久久久久久综合| 欧美一区二区三区四区在线| 日韩二区三区在线| 国产亚洲视频在线观看| 国产精品美女www| 国产精品大陆在线观看| 伊人久久男人天堂| 亚洲色图av在线| 国产精品久久久久久久久久免费| 91久久久久久国产精品| 久久久免费观看视频| 国产男女猛烈无遮挡91| 精品久久久久久久久久国产| 永久免费看mv网站入口亚洲| 亚洲精品免费一区二区三区| 国产亚洲欧美日韩精品| 九九热最新视频//这里只有精品| 欧美性受xxxx黑人猛交| 亚洲精品国精品久久99热| 国产精品嫩草影院一区二区| 在线观看免费高清视频97| 最近2019中文字幕第三页视频| 亚洲欧洲美洲在线综合| 精品国产欧美一区二区三区成人| 久久久噜久噜久久综合| 久久国产精品偷| 97国产精品视频人人做人人爱|