10個C#編程和Visual Studio使用技巧

作者: 黃永兵  發布時間: 2010-10-02 19:55  閱讀: 4528 次  推薦: 0   原文鏈接   [收藏]  
摘要:C#是一門偉大的編程語言,與C++和Java相比,它的語法更簡單,相對來說更好入門。Visual Studio作為.Net平臺上最重量級的IDE,也通過不斷的更新為開發者帶來更出色的開發體驗。本文將介紹10個C#編程和Visual Studio IDE使用技巧。

  C#是一門偉大的編程語言,與C++和Java相比,它的語法更簡單,相對來說更好入門,經歷10年的發展,C#已經成為編程語言領域強有力的競爭者,每一年我們都能看到它的進步,每一個新版本都加入了許多新特性,總的來說,作為一門編程語言,它沒有讓C#開發者社區失望。Visual Studio亦是如此,新版本的Visual Studio 2010所帶來的新特性也讓開發者們興奮不已。

對開場白沒興趣?好吧,我們直接切入正題,下面介紹10個C#編程和Visual Studio IDE使用技巧。

  1、Environment.Newline

  你是否知道這個屬性是與平臺無關的?允許你根據每個平臺輸出新的換行字符。

 
Console.WriteLine("My Tips On ,{0}C#", Environment.NewLine);

  2、命名空間別名

  你是否知道可以使用更短的別名代替長的命名空間?你是否遇到過需要限制完整的命名空間以避免產生歧義?看下面的代碼示例,它是使用擴展的.NET Framework控件創建的一個通用庫。

 
 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#開發人員應該都有過程序調試的經歷,這個屬性在調試期間控制對象行為的能力非常強大,在調試過程中它在一個小提示窗口中顯示對象,它可以用于隱藏私有成員或在調試窗口中顯示也是多余的成員,例如,當你調試類對象時,在調試窗口中你可以看到私有變量,這個時候你就可以使用[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、為項目創建虛擬目錄

  你可以強制每個開發人員在本地為項目創建一個同名的虛擬目錄,這個來自Visual Studio IDE的技巧將有助于代碼在多個C#開發人員的電腦之間同步。在項目名稱上點擊右鍵,選擇“屬性”,在“Web”選項卡中,選中“使用本地IIS Web服務器”選項,然后為其指定一個虛擬路徑,如下圖所示。

圖 1 設置項目的本地虛擬目錄路徑

  這樣設置后,所有使用該項目文件的開發人員都會收到一個要求,在本地機器上創建一個同名的虛擬目錄。

  6、改變項目平臺

  你可以改變應用程序的生成目標平臺,這里的平臺指的是32位和64位環境,在項目名稱上點擊右鍵,選擇“屬性”,在“Build”選項卡中,選擇需要的目標平臺,如下圖所示。

圖 2 修改項目的目標平臺

  7、代碼定義窗口

  這個窗口允許你跳轉到對象的定義,你可以按F12鍵快速跳轉到對象的定義位置,在代碼編輯器的任意對象上試試這個功能,相信一定不會讓你失望的。此外,還有一個專門的代碼定義窗口,當你按照Ctrl+W,D組合鍵時就會彈出一個代碼定義窗口。

 
if (e.Item.ItemType == ListItemType.Item )
{

//Your code here.
}

  如果你將光標停留在ListItemType上面,然后按下組合鍵,你將會看到如下圖所示的一個窗口。

圖 3 代碼定義窗口

  8、Null合并運算符

  Null合并運算符允許你以很簡潔的方式比較空值,它使用兩個問號表示。例如,myfunction返回的值可能是一個空的整數值,在這種情況下,你可以使用合并運算符快速檢查它是否為空,然后返回一個代替值。

 
int myExpectedValueIfNull = 10;
int expectedValue = myfunction() ?? myExpectedValueIfNull

  9、using語句快捷鍵

  按下Ctrl+.會彈出一列可用的using語句,使用箭頭鍵進行移動,按下回車鍵確認選擇,如下圖所示。

圖 4 在代碼編輯器中快速調出using語句

  10、尋找恐怖的數據集合并錯誤根本原因

  你是否遇到過無法找出數據集合并錯誤的原因?現在有辦法了,使用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)));
}
}
}
}

  小結

  希望你能靈活運用這些C#編程和Visual Studio技巧,享受寫代碼的樂趣,如果你有其它技巧愿意和大家分享,歡迎在本文后面發表評論。

0
0
 
標簽:Visual Studio C#
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()