C#編程和Visual Studio提示(上)

來源:互聯網
上載者:User
對開場白沒興趣?好吧,我們直接切入正題,下面介紹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伺服器”選項,然後為其指定一個虛擬路徑。

這樣設定後,所有使用該專案檔的開發人員都會收到一個要求,在本地機器上建立一個同名的虛擬目錄。

6、改變項目平台

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

7、程式碼定義視窗

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

if (e.Item.ItemType == ListItemType.Item ) {   //Your code here. }

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

圖2 程式碼定義視窗

8、Null合并運算子

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

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

9、using語句快速鍵

按下Ctrl+.會彈出一列可用的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技巧,享受寫代碼的樂趣,大家多多交流,一起進步

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.