新聞中心
C#是一門偉大的編程語言,與C++和Java相比,它的語法更簡單,相對來說更好入門,經(jīng)歷10年的發(fā)展,C#已經(jīng)成為編程語言領(lǐng)域強(qiáng)有力的競爭者,每一年我們都能看到它的進(jìn)步,每一個(gè)新版本都加入了許多新特性,總的來說,作為一門編程語言,它沒有讓C#開發(fā)者社區(qū)失望。Visual Studio亦是如此,新版本的Visual Studio 2010所帶來的新特性也讓開發(fā)者們興奮不已。本文下篇請點(diǎn)擊這里。

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括宜昌網(wǎng)站建設(shè)、宜昌網(wǎng)站制作、宜昌網(wǎng)頁制作以及宜昌網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,宜昌網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到宜昌省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
對開場白沒興趣?好吧,我們直接切入正題,下面介紹10個(gè)C#編程和Visual Studio IDE使用技巧。
1、Environment.Newline
你是否知道這個(gè)屬性是與平臺無關(guān)的?允許你根據(jù)每個(gè)平臺輸出新的換行字符。
- Console.WriteLine("My Tips On ,{0}C#", Environment.NewLine);
2、命名空間別名
你是否知道可以使用更短的別名代替長的命名空間?你是否遇到過需要限制完整的命名空間以避免產(chǎn)生歧義?看下面的代碼示例,它是使用擴(kuò)展的.NET Framework控件創(chuàng)建的一個(gè)通用庫。
- 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#開發(fā)人員應(yīng)該都有過程序調(diào)試的經(jīng)歷,這個(gè)屬性在調(diào)試期間控制對象行為的能力非常強(qiáng)大,在調(diào)試過程中它在一個(gè)小提示窗口中顯示對象,它可以用于隱藏私有成員或在調(diào)試窗口中顯示也是多余的成員,例如,當(dāng)你調(diào)試類對象時(shí),在調(diào)試窗口中你可以看到私有變量,這個(gè)時(shí)候你就可以使用[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屬性
這個(gè)屬性可讓具有可讀描述的變量對象顯示出來,它有助于提供團(tuán)隊(duì)其它成員未來閱讀代碼的效率,它的用法也是非常簡單的,下面的代碼示例顯示了變量的值。
- public class MyClass
- {
- [DebuggerDisplay("Value = {myVariable}")]
- public string myVariable = "mydisplay";
- }
5、為項(xiàng)目創(chuàng)建虛擬目錄
你可以強(qiáng)制每個(gè)開發(fā)人員在本地為項(xiàng)目創(chuàng)建一個(gè)同名的虛擬目錄,這個(gè)來自Visual Studio IDE的技巧將有助于代碼在多個(gè)C#開發(fā)人員的電腦之間同步。在項(xiàng)目名稱上點(diǎn)擊右鍵,選擇“屬性”,在“Web”選項(xiàng)卡中,選中“使用本地IIS Web服務(wù)器”選項(xiàng),然后為其指定一個(gè)虛擬路徑,如下圖所示。
圖 1 設(shè)置項(xiàng)目的本地虛擬目錄路徑
這樣設(shè)置后,所有使用該項(xiàng)目文件的開發(fā)人員都會收到一個(gè)要求,在本地機(jī)器上創(chuàng)建一個(gè)同名的虛擬目錄。
6、改變項(xiàng)目平臺
你可以改變應(yīng)用程序的生成目標(biāo)平臺,這里的平臺指的是32位和64位環(huán)境,在項(xiàng)目名稱上點(diǎn)擊右鍵,選擇“屬性”,在“Build”選項(xiàng)卡中,選擇需要的目標(biāo)平臺,如下圖所示。
圖 2 修改項(xiàng)目的目標(biāo)平臺
7、代碼定義窗口
這個(gè)窗口允許你跳轉(zhuǎn)到對象的定義,你可以按F12鍵快速跳轉(zhuǎn)到對象的定義位置,在代碼編輯器的任意對象上試試這個(gè)功能,相信一定不會讓你失望的。此外,還有一個(gè)專門的代碼定義窗口,當(dāng)你按照Ctrl+W,D組合鍵時(shí)就會彈出一個(gè)代碼定義窗口。
- if (e.Item.ItemType == ListItemType.Item )
- {
- //Your code here.
- }
如果你將光標(biāo)停留在ListItemType上面,然后按下組合鍵,你將會看到如下圖所示的一個(gè)窗口。
圖 3 代碼定義窗口
8、Null合并運(yùn)算符
Null合并運(yùn)算符允許你以很簡潔的方式比較空值,它使用兩個(gè)問號表示。例如,myfunction返回的值可能是一個(gè)空的整數(shù)值,在這種情況下,你可以使用合并運(yùn)算符快速檢查它是否為空,然后返回一個(gè)代替值。
- int myExpectedValueIfNull = 10;
- int expectedValue = myfunction() ?? myExpectedValueIfNull
9、using語句快捷鍵
按下Ctrl+.會彈出一列可用的using語句,使用箭頭鍵進(jìn)行移動,按下回車鍵確認(rèn)選擇,如下圖所示。
圖 4 在代碼編輯器中快速調(diào)出using語句
10、尋找恐怖的數(shù)據(jù)集合并錯(cuò)誤根本原因
你是否遇到過無法找出數(shù)據(jù)集合并錯(cuò)誤的原因?現(xiàn)在有辦法了,使用try-catch將你的代碼包圍起來,最好是在異常處理塊中觀察特定代碼的輸出,可以準(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技巧,享受寫代碼的樂趣,如果你有其它技巧愿意和大家分享,歡迎在本文后面發(fā)表評論。
網(wǎng)站名稱:10個(gè)C#編程和VisualStudio使用技巧
本文地址:http://m.fisionsoft.com.cn/article/cddppeg.html


咨詢
建站咨詢
