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辦法,它可使用排序列上創立的索引,是以速度更快。
願望這些技能可以贊助你節儉名貴的編程時光,趕緊去嘗嘗吧!