日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

关于C# this 指针

發布時間:2025/3/21 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于C# this 指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
This關鍵字的另一種用法是使用一項名為構造函數鏈的技術來設計類。當定義了多個構造函數時,這個設計模式就會很有用。由于構造函數通常會驗證傳入的參數來強制各種業務規則,所以在類的構造函數集合中經常會找到冗余的驗證邏輯。考慮如下更新后的Motocycle Class Motorcycle { Public int driverIntensity; Public string driverName; Public Motorcycle() {} //冗余的構造函數邏輯 Public Motorcycle(int intensity) { If(intensity > 10) { Intensity = 10; } driverIntensity = intensity; } Public Motorcycle(int intensity,string name) { If(intensity>10) { Intensity = 10; } driverIntensity = intensity; driverName = name; } …… } 在這里,每一個構造函數確保強度等級不超過?10。雖然可以這么做,但是在兩個構造函數中有冗余代碼語句。這不夠完美,如果規則改變的話,就必須在多個位置更新代碼。 改進這種情況的一個方法就是在?Motocycle類中定義一個用來驗證傳入參數的方法。如果這么做的話,每一個構造函數就可以進行字段賦值之前調用這個方法。雖然這個方法確實可以隔離在業務規則改變時需要修改的代碼,但是我們就會面臨如下的冗余: class Motorcycle {? public int driverIntensity; public string driverName; //構造函數 Public Motorcycle() {} Public Motorcycle(int intensity) { SetIntensity(intensity); } Public Motorcycle(int intensity,string name) { SetIntensity(intensity); driverName = name; } Public void?SetIntensity(int intensity) { If(intensity >10) { Intensity = 10; }? driverIntensity = intensity; } …… } 一個更簡潔的方案就是,讓一個接受最多參數個數的構造函數做“主構造函數”,并且實現必須的驗證邏輯。其余的構造函數可以使用?this關鍵字把傳入的參數轉發給主構造函數,并且提供所有必須的其他參數。這樣,整個類中只會有一個構造函數需要我們去操心,其余構造函數基本是空的。 下面是Motorcycle?類的最后一次迭代。在串聯構造函數時,請注意?this如何在構造函數本身的作用域之外“躲開”構造函數的聲明: class Motorcycle { public int driverIntensity; public string driverName; //構造函數 public Motorcycle(){} public Motorcycle(int intensity):this(intensity,””){} public Motorcycle(string name):this(0,name){}? //這是做所有工作的“主”構造函數?. Public Motorcycle(int intensity,string name) { If(intensity>10) { Intensity = 10; } driverIntensity = intensity; driverName = name; } …… } 需要理解的是,使用this關鍵字串聯構造函數不是強制的。但如果使用這項技術,類定義就會更容易維護、更簡明。再說一次,使用這項技術可以簡化編程任務,因為真正的工作都交給了一個構造函數來做,而其他構造函數只是在“踢皮球”。?
from:?http://blog.csdn.net/cyh_24/article/details/7747995

總結

以上是生活随笔為你收集整理的关于C# this 指针的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。