首頁 後端開發 C#.Net教程 C#程式設計和Visual Studio使用技巧(上)

C#程式設計和Visual Studio使用技巧(上)

Feb 07, 2017 am 10:59 AM

對開場白沒興趣?好吧,我們直接切入正題,以下介紹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#開發人員的電腦之間同步。在專案名稱上點選右鍵,選擇“屬性”,在“網路”標籤中,選取“使用本機IIS Web伺服器”選項,然後為其指定一個虛擬路徑。

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

6、改變專案平台

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

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

7、程式碼定義視窗

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

if (e.Item.ItemType == ListItemType.Item )
 {
   //Your code here.
 }
登入後複製

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

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

圖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技巧,享受寫程式碼的樂趣,大家多多交流,一起進步

更多C程式設計和Visual Studio(T文章請關注PHP中文網!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
c#.net的持續相關性:查看當前用法 c#.net的持續相關性:查看當前用法 Apr 16, 2025 am 12:07 AM

C#.NET依然重要,因為它提供了強大的工具和庫,支持多種應用開發。 1)C#結合.NET框架,使開發高效便捷。 2)C#的類型安全和垃圾回收機制增強了其優勢。 3).NET提供跨平台運行環境和豐富的API,提升了開發靈活性。

從網絡到桌面:C#.NET的多功能性 從網絡到桌面:C#.NET的多功能性 Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C#作為多功能.NET語言:應用程序和示例 C#作為多功能.NET語言:應用程序和示例 Apr 26, 2025 am 12:26 AM

C#在企業級應用、遊戲開發、移動應用和Web開發中均有廣泛應用。 1)在企業級應用中,C#常用於ASP.NETCore開發WebAPI。 2)在遊戲開發中,C#與Unity引擎結合,實現角色控制等功能。 3)C#支持多態性和異步編程,提高代碼靈活性和應用性能。

c#.net適合您嗎?評估其適用性 c#.net適合您嗎?評估其適用性 Apr 13, 2025 am 12:03 AM

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#.NET與未來:適應新技術 C#.NET與未來:適應新技術 Apr 14, 2025 am 12:06 AM

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

.NET中的C#代碼:探索編程過程 .NET中的C#代碼:探索編程過程 Apr 12, 2025 am 12:02 AM

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。

將C#.NET應用程序部署到Azure/AWS:逐步指南 將C#.NET應用程序部署到Azure/AWS:逐步指南 Apr 23, 2025 am 12:06 AM

如何將C#.NET應用部署到Azure或AWS?答案是使用AzureAppService和AWSElasticBeanstalk。 1.在Azure上,使用AzureAppService和AzurePipelines自動化部署。 2.在AWS上,使用AmazonElasticBeanstalk和AWSLambda實現部署和無服務器計算。

C#和.NET運行時:它們如何一起工作 C#和.NET運行時:它們如何一起工作 Apr 19, 2025 am 12:04 AM

C#和.NET運行時緊密合作,賦予開發者高效、強大且跨平台的開發能力。 1)C#是一種類型安全且面向對象的編程語言,旨在與.NET框架無縫集成。 2).NET運行時管理C#代碼的執行,提供垃圾回收、類型安全等服務,確保高效和跨平台運行。

See all articles