欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#編程和Visual Studio使用技巧(上)

 更新時(shí)間:2015年10月14日 10:56:55   投稿:lijiao  
C#是一門(mén)偉大的編程語(yǔ)言,與C++和Java相比,它的語(yǔ)法更簡(jiǎn)單,相對(duì)來(lái)說(shuō)更好入門(mén)。Visual Studio作為.Net平臺(tái)上最重量級(jí)的IDE,也通過(guò)不斷的更新為開(kāi)發(fā)者帶來(lái)更出色的開(kāi)發(fā)體驗(yàn)。本文將介紹10個(gè)C#編程和Visual Studio IDE使用技巧。

對(duì)開(kāi)場(chǎng)白沒(méi)興趣?好吧,我們直接切入正題,下面介紹10個(gè)C#編程和Visual Studio IDE使用技巧。

1、Environment.Newline

你是否知道這個(gè)屬性是與平臺(tái)無(wú)關(guān)的?允許你根據(jù)每個(gè)平臺(tái)輸出新的換行字符。

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

2、命名空間別名

你是否知道可以使用更短的別名代替長(zhǎng)的命名空間?你是否遇到過(guò)需要限制完整的命名空間以避免產(chǎn)生歧義?看下面的代碼示例,它是使用擴(kuò)展的.NET Framework控件創(chuàng)建的一個(gè)通用庫(kù)。

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屬性

每個(gè)C#開(kāi)發(fā)人員應(yīng)該都有過(guò)程序調(diào)試的經(jīng)歷,這個(gè)屬性在調(diào)試期間控制對(duì)象行為的能力非常強(qiáng)大,在調(diào)試過(guò)程中它在一個(gè)小提示窗口中顯示對(duì)象,它可以用于隱藏私有成員或在調(diào)試窗口中顯示也是多余的成員,例如,當(dāng)你調(diào)試類(lèi)對(duì)象時(shí),在調(diào)試窗口中你可以看到私有變量,這個(gè)時(shí)候你就可以使用[DebuggerBrowsable(DebuggerBrowsableState.Never)]屬性來(lái)隱藏它們,下面是可見(jiàn)的代碼。

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屬性

這個(gè)屬性可讓具有可讀描述的變量對(duì)象顯示出來(lái),它有助于提供團(tuán)隊(duì)其它成員未來(lái)閱讀代碼的效率,它的用法也是非常簡(jiǎn)單的,下面的代碼示例顯示了變量的值。

public class MyClass 
 { 
   [DebuggerDisplay("Value = {myVariable}")] 
   public string myVariable = "mydisplay"; 
 } 

5、為項(xiàng)目創(chuàng)建虛擬目錄

你可以強(qiáng)制每個(gè)開(kāi)發(fā)人員在本地為項(xiàng)目創(chuàng)建一個(gè)同名的虛擬目錄,這個(gè)來(lái)自Visual Studio IDE的技巧將有助于代碼在多個(gè)C#開(kāi)發(fā)人員的電腦之間同步。在項(xiàng)目名稱(chēng)上點(diǎn)擊右鍵,選擇“屬性”,在“Web”選項(xiàng)卡中,選中“使用本地IIS Web服務(wù)器”選項(xiàng),然后為其指定一個(gè)虛擬路徑。

這樣設(shè)置后,所有使用該項(xiàng)目文件的開(kāi)發(fā)人員都會(huì)收到一個(gè)要求,在本地機(jī)器上創(chuàng)建一個(gè)同名的虛擬目錄。

6、改變項(xiàng)目平臺(tái)

你可以改變應(yīng)用程序的生成目標(biāo)平臺(tái),這里的平臺(tái)指的是32位和64位環(huán)境,在項(xiàng)目名稱(chēng)上點(diǎn)擊右鍵,選擇“屬性”,在“Build”選項(xiàng)卡中,選擇需要的目標(biāo)平臺(tái),如下圖所示。

 

圖1 修改項(xiàng)目的目標(biāo)平臺(tái)

7、代碼定義窗口

這個(gè)窗口允許你跳轉(zhuǎn)到對(duì)象的定義,你可以按F12鍵快速跳轉(zhuǎn)到對(duì)象的定義位置,在代碼編輯器的任意對(duì)象上試試這個(gè)功能,相信一定不會(huì)讓你失望的。此外,還有一個(gè)專(zhuān)門(mén)的代碼定義窗口,當(dāng)你按照Ctrl+W,D組合鍵時(shí)就會(huì)彈出一個(gè)代碼定義窗口。

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

如果你將光標(biāo)停留在ListItemType上面,然后按下組合鍵,你將會(huì)看到如下圖所示的一個(gè)窗口。

 

圖2  代碼定義窗口

8、Null合并運(yùn)算符

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

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

9、using語(yǔ)句快捷鍵

按下Ctrl+.會(huì)彈出一列可用的using語(yǔ)句,使用箭頭鍵進(jìn)行移動(dòng),按下回車(chē)鍵確認(rèn)選擇。

10、尋找恐怖的數(shù)據(jù)集合并錯(cuò)誤根本原因

你是否遇到過(guò)無(wú)法找出數(shù)據(jù)集合并錯(cuò)誤的原因?現(xiàn)在有辦法了,使用try-catch將你的代碼包圍起來(lái),最好是在異常處理塊中觀察特定代碼的輸出,可以準(zhǔn)確捕捉到合并失敗的原因。

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é)

希望你能靈活運(yùn)用這些C#編程和Visual Studio技巧,享受寫(xiě)代碼的樂(lè)趣,大家多多交流,一起進(jìn)步

相關(guān)文章

最新評(píng)論