C#編程和Visual Studio應用技能(下)。本站提示廣大學習愛好者:(C#編程和Visual Studio應用技能(下))文章只能為提供參考,不一定能成為您想要的結果。以下是C#編程和Visual Studio應用技能(下)正文
假如你經由過程搜刮引擎發明這篇文章的,我建議你先看看本系列的第一篇,這是本系列文章的第二篇,明天為年夜家帶來更豐碩的C#和Visual Studio編程技能,一路來看看吧。
推舉:《10個C#編程和Visual Studio應用技能》(上)
1、DataTable.HasRows
它不屬於任何框架,但經由過程擴大辦法很輕易模擬如許一個辦法,它不會清除檢討數據表對象能否為空或行數的原始代碼,但它可以簡化運用法式的代碼,上面是一個代碼片斷:
<CODE> public static bool HasRows(this DataTable dataTable) { return dataTable.IsNull() ? false : (dataTable.Rows.Count > 0); } public static bool IsNull(this object o) { return (o == null); } To use: If(dataTable.HasRows()) { … } </CODE>
其它規矩依然和擴大辦法雷同。
2、ToTitleCase
這個辦法可以將每一個單詞的首字母轉換為年夜寫,剩下的字母轉換為小寫,例如,“look below for a sample”將被轉換為“Look Below For A Sample”,TextInfo是System.Globalization定名空間的一部門,但它存在以下成績:
以後的文明
假如輸出字符串全體是年夜寫
上面的擴大辦法同時斟酌了這兩個缺點。
<CODE> public static string ToTitleCase(this string inputString) { return Thread.CurrentThread.CurrentCulture.TextInfo. ToTitleCase((inputString ?? string.Empty).ToLower()); } </CODE>
3、顯性和隱性接話柄現
這很主要嗎?是的,異常主要,你曉得它們之間的語法差別嗎?其實它們存在基本性的差別。類上的隱性接話柄現默許是一個公共辦法,在類的對象或接口上都可以拜訪。而類上的顯性接話柄現默許是一個公有辦法,只能經由過程接口拜訪,不克不及經由過程類的對象拜訪。上面是示例代碼:
<CODE> INTERFACE public interface IMyInterface { void MyMethod(string myString); } CLASS THAT IMPLEMENTS THE INTERFACE IMPLICITLY public MyImplicitClass: IMyInterface { public void MyMethod(string myString) { /// } } CLASS THAT IMPLEMENTS THE INTERFACE EXPLICITLY public MyExplicitClass: IMyInterface { void IMyInterface.MyMethod(string myString) { /// } } MyImplicitClass instance would work with either the class or the Interface: MyImplicitClass myObject = new MyImplicitClass(); myObject.MyMethod(""); IMyInterface myObject = new MyImplicitClass(); myObject.MyMethod(""); MyExplicitClass would work only with the interface: //The following line would not work. MyExplicitClass myObject = new MyExplicitClass(); myObject.MyMethod(""); //This will work IMyInterface myObject = new MyExplicitClass(); myObject.MyMethod(""); </CODE>
4、Auto屬性
它是調換包括一個公共,兩個公有成員屬性的最好方法。
按下兩次Tab鍵(須要開啟代碼片斷功效),一個Auto屬性就創立好了,再按Tab鍵Auto屬性取一個名字。上面這段代碼
<CODE> private double _total; public double Total { get { return _total; } set { _total = value; } } </CODE>
就釀成了
<CODE> public double Total { get; set; } </CODE>
留意你依然可以依據你的設計運用拜訪解釋符,編譯器應當會為你創立公有成員變量。
5、壯大的Path.Combine
Path.Combine憑仗壯大的功效清除了尾斜線和途徑相干的成績,簡略易用,讓途徑字符串更持續,它包括一個字符串途徑參數。
你不消擔憂途徑中的有用分隔符或空格,完整不消你處置途徑歸並時的字符串聯接。
6、在類中編寫“Override”辦法的疾速辦法
在代碼編纂器中輸出override,按空格鍵,你將會看到一串基於類的可覆寫辦法,如圖2所示。
圖1 可覆寫辦法列表
7、應用擴大的設置裝備擺設文件
感激app.config(針對運用法式)和web.config設置裝備擺設文件,使我們可以處置龐雜的運用法式級設置,然則我們依然要處置分歧情況設置面對的各類成績,這裡指的是開辟、測試和臨盆情況的設置。
我們不能不恢復到一個特定的情況以便停止剖析、測試或調式部門代碼,在這個進程中,每次設置和調劑都很有趣。
例如,每次恢復能夠都要從新設置ConnectionStrings(銜接字符串),如今你可以經由過程內部文件援用應用ConfigSource屬性來處理這個成績。例如,上面的代碼援用了一個deveploment.config內部設置裝備擺設文件。
<connectionStrings configSource="configs\ development.config" />
你還可以在AppSettings設置末節應用這個有效的屬性。
8、戰勝String.Split辦法的局限
String.Split是分隔字符串最幻想的辦法,但據我們所知,它也有一些限制,如不克不及應用“||”或“::”如許的字符,必需應用鍵盤上舉世無雙的單個字符作為分隔符,這個缺陷可使用RegEx庫供給的Split辦法來戰勝失落,上面的代碼顯示了應用RegEx Split分隔一個“||”分隔字符串。
<CODE> string delimitedString = "String.Split || RegEx.Split"); string[] ouputString = System.Text.RegularExpressions.Regex.Split( delimitedString, , System.Text.RegularExpressions.Regex.Escape("||")); </CODE>
9、元素的HTML代碼視圖和設計視圖之間的疾速切換(反之亦然)
在設計運用法式時,我們在IDE上消費的時光許多,年夜部門時光都耗在HTML內容和設計視圖上,Visual Studio 2010供給了設計視圖和HTML代碼之間疾速切換的功效。
假如你在HTML視圖中,定位你想在設計視圖中檢查的元素,然後切換到設計視圖,你想檢查的元素應當處於選中狀況,另外,屬性窗口如今也應當顯示的是選中元素的屬性。
與此相似,當你在設計視圖中,選中元素,然後切換到代碼視圖,你選中的元素對應的HTML代碼應當是高亮狀況。
10、疾速搜刮數據庫中的數據
固然數據表支撐Find和Select辦法選擇行,但它們都沒有DataView的辦法好用,DataView供給了一個FindRows辦法,它可使用排序列上創立的索引,是以速度更快。
願望這些技能可以贊助你節儉名貴的編程時光,趕緊去嘗嘗吧!