C#編程和Visual Studio使用技巧(上)
對開場白沒興趣?好吧,我們直接切入正題,下面介紹10個C#編程和Visual Studio IDE使用技巧。
1、Environment.Newline
你是否知道這個屬性是與平臺無關(guān)的?允許你根據(jù)每個平臺輸出新的換行字符。
Console.WriteLine("My Tips On ,{0}C#", Environment.NewLine);
2、命名空間別名
你是否知道可以使用更短的別名代替長的命名空間?你是否遇到過需要限制完整的命名空間以避免產(chǎn)生歧義?看下面的代碼示例,它是使用擴展的.NET Framework控件創(chuàng)建的一個通用庫。
using System.Web.UI.WebControls; using MyGenericLibrary.UserControls; /* Assuming that you had a Text Box control in both the namespace, you would have to fully qualify the class object with the complete namespace.To avoid that, you can use namespace alias. Change as below */ using System.Web.UI.WebControls; using mc = MyGenericLibrary.UserControls; /*and then use, /* mc.TextBox textbox = new mc.TextBox();
3、DebuggerBrowsable屬性
每個C#開發(fā)人員應(yīng)該都有過程序調(diào)試的經(jīng)歷,這個屬性在調(diào)試期間控制對象行為的能力非常強大,在調(diào)試過程中它在一個小提示窗口中顯示對象,它可以用于隱藏私有成員或在調(diào)試窗口中顯示也是多余的成員,例如,當(dāng)你調(diào)試類對象時,在調(diào)試窗口中你可以看到私有變量,這個時候你就可以使用[DebuggerBrowsable(DebuggerBrowsableState.Never)]屬性來隱藏它們,下面是可見的代碼。
public class MyClass { private string _id; public string InternalID { get { return _id; } set { _id = value; } } }
下面是使之隱藏的代碼:
[DebuggerBrowsable(DebuggerBrowsableState.Never)] public class MyClass { private string _id; public string InternalID { get { return _id; } set { _id = value; } } }
4、DebuggerDisplay屬性
這個屬性可讓具有可讀描述的變量對象顯示出來,它有助于提供團隊其它成員未來閱讀代碼的效率,它的用法也是非常簡單的,下面的代碼示例顯示了變量的值。
public class MyClass { [DebuggerDisplay("Value = {myVariable}")] public string myVariable = "mydisplay"; }
5、為項目創(chuàng)建虛擬目錄
你可以強制每個開發(fā)人員在本地為項目創(chuàng)建一個同名的虛擬目錄,這個來自Visual Studio IDE的技巧將有助于代碼在多個C#開發(fā)人員的電腦之間同步。在項目名稱上點擊右鍵,選擇“屬性”,在“Web”選項卡中,選中“使用本地IIS Web服務(wù)器”選項,然后為其指定一個虛擬路徑。
這樣設(shè)置后,所有使用該項目文件的開發(fā)人員都會收到一個要求,在本地機器上創(chuàng)建一個同名的虛擬目錄。
6、改變項目平臺
你可以改變應(yīng)用程序的生成目標(biāo)平臺,這里的平臺指的是32位和64位環(huán)境,在項目名稱上點擊右鍵,選擇“屬性”,在“Build”選項卡中,選擇需要的目標(biāo)平臺,如下圖所示。
圖1 修改項目的目標(biāo)平臺
7、代碼定義窗口
這個窗口允許你跳轉(zhuǎn)到對象的定義,你可以按F12鍵快速跳轉(zhuǎn)到對象的定義位置,在代碼編輯器的任意對象上試試這個功能,相信一定不會讓你失望的。此外,還有一個專門的代碼定義窗口,當(dāng)你按照Ctrl+W,D組合鍵時就會彈出一個代碼定義窗口。
if (e.Item.ItemType == ListItemType.Item ) { //Your code here. }
如果你將光標(biāo)停留在ListItemType上面,然后按下組合鍵,你將會看到如下圖所示的一個窗口。
圖2 代碼定義窗口
8、Null合并運算符
Null合并運算符允許你以很簡潔的方式比較空值,它使用兩個問號表示。例如,myfunction返回的值可能是一個空的整數(shù)值,在這種情況下,你可以使用合并運算符快速檢查它是否為空,然后返回一個代替值。
int myExpectedValueIfNull = 10; int expectedValue = myfunction() ?? myExpectedValueIfNull
9、using語句快捷鍵
按下Ctrl+.會彈出一列可用的using語句,使用箭頭鍵進行移動,按下回車鍵確認選擇。
10、尋找恐怖的數(shù)據(jù)集合并錯誤根本原因
你是否遇到過無法找出數(shù)據(jù)集合并錯誤的原因?現(xiàn)在有辦法了,使用try-catch將你的代碼包圍起來,最好是在異常處理塊中觀察特定代碼的輸出,可以準確捕捉到合并失敗的原因。
StringBuilder error Messages = new StringBuilder(); try { DataSet dataSet1 = populateDataSet(1); DataSet dataSet2 = populateDataSet(2); dataset1.Merge(dataset2); } catch (System.Data.DataException de) { foreach (DataTable myTable in dataSet1.Tables) { foreach (DataRow myRow in myTable.GetErrors()) { foreach (DataColumn myColumn in myRow.GetColumnsInError()) { //loop through each column in the row that has caused the error //during the bind and show it. error Messages .Append(string.Format( "Merge failed due to : {0}", myColumn.GetColumnError(myColumn))); } } } }
小結(jié)
希望你能靈活運用這些C#編程和Visual Studio技巧,享受寫代碼的樂趣,大家多多交流,一起進步
您可能感興趣的文章
- 01-10Extjs4如何處理后臺json數(shù)據(jù)中日期和時間
- 01-10C#編程實現(xiàn)自定義熱鍵的方法
- 01-10C#編程獲取資源文件中圖片的方法
- 01-10C#及WPF獲取本機所有字體和顏色的方法
- 01-10同步調(diào)用和異步調(diào)用WebService
- 01-10C#編程自學(xué)之?dāng)?shù)據(jù)類型和變量二
- 01-10C#編程自學(xué)之開篇介紹
- 01-10C#編程自學(xué)之?dāng)?shù)據(jù)類型和變量三
- 01-10C#編程自學(xué)之運算符和表達式
- 01-10C#裝箱和拆箱原理詳解


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10C#中split用法實例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery