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

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

Feb 07, 2017 am 11:07 AM

如果你透過搜尋引擎發現這篇文章的,我建議你先看看本系列的第一篇,這是本系列文章的第二篇,今天為大家帶來更豐富的C#和Visual Studio程式設計技巧,一起來看看吧。

1、DataTable.HasRows

它不屬於任何框架,但透過擴展方法很容易模仿這樣一個方法,它不會消除檢查資料表物件是否為空或行數的原始程式碼,但它可以簡化應用程式的程式碼,下面是一個程式碼片段:

<CODE> 
public static bool HasRows(this DataTable dataTable) 
  { 
return dataTable.IsNull() ? false : (dataTable.Rows.Count > 0); 
  } 
  
 public static bool IsNull(this object o) 
  { 
   return (o == null); 
  } 
  
 To use: 
 If(dataTable.HasRows()) 
 { 
 … 
 } 
  </CODE>
登入後複製

其它規則仍然和擴充方法相同。

2、ToTitleCase

這個方法可以將每個單字的首字母轉換為大寫,剩下的字母轉換為小寫,例如,“look below for a sample”將被轉換為“Look Below For A Sample”, TextInfo是System.Globalization命名空間的一部分,但它有以下問題:

當前的文化

如果輸入字串全部是大寫

下面的擴展方法同時考慮了這兩個缺陷。

<CODE> 
public static string ToTitleCase(this string inputString) 
  { 
   return Thread.CurrentThread.CurrentCulture.TextInfo. 
ToTitleCase((inputString ?? string.Empty).ToLower()); 
 } 
  </CODE>
登入後複製

3、顯性和隱性介面實作

這很重要嗎?是的,非常重要,你知道它們之間的文法差異嗎?其實它們存在著根本性的差別。類別上的隱性介面實作預設是一個公共方法,在類別的物件或介面上都可以存取。而類別上的顯性介面實作預設是一個私有方法,只能透過介面訪問,不能透過類別的物件存取。以下是範例程式碼:

<CODE> 
  
 INTERFACE 
 public interface IMyInterface 
 { 
 void MyMethod(string myString); 
 } 
  
 CLASS THAT IMPLEMENTS THE INTERFACE IMPLICITLY 
 public MyImplicitClass: IMyInterface 
 { 
 public void MyMethod(string myString) 
 { 
 /// 
 } 
 } 
  
 CLASS THAT IMPLEMENTS THE INTERFACE EXPLICITLY 
 public MyExplicitClass: IMyInterface 
 { 
 void IMyInterface.MyMethod(string myString) 
 { 
 /// 
 } 
 } 
  
 MyImplicitClass instance would work with either the class or the Interface: 
 MyImplicitClass myObject = new MyImplicitClass(); 
 myObject.MyMethod(""); 
 IMyInterface myObject = new MyImplicitClass(); 
 myObject.MyMethod(""); 
  
 MyExplicitClass would work only with the interface: 
 //The following line would not work. 
 MyExplicitClass myObject = new MyExplicitClass(); 
 myObject.MyMethod(""); 
 //This will work 
 IMyInterface myObject = new MyExplicitClass(); 
 myObject.MyMethod(""); 
  
 </CODE>
登入後複製

4、Auto屬性

它是替換包含一個公共,兩個私有成員屬性的最佳方法。

按下兩次Tab鍵(要開啟程式碼片段功能),一個Auto屬性就創建好了,再按Tab鍵Auto屬性取一個名字。下面這段程式碼

<CODE> 
 private double _total; 
 public double Total 
 { 
 get { return _total; } 
 set { _total = value; } 
 } 
 </CODE>
登入後複製

就變成了

<CODE> 
public double Total { get; set; } 
 </CODE>
登入後複製

注意你仍然可以根據你的設計應用存取說明符,編譯器應該會為你建立私有成員變數。

5、強大的Path.Combine

Path.Combine憑藉強大的功能消除了尾斜線和路徑相關的問題,簡單易用,讓路徑字符串更連續,它包含一個字符串路徑參數。

你不用擔心路徑中的有效分隔符號或空格,完全不用你處理路徑合併時的字串連接。

6、在類別中編寫「Override」方法的快速方法

在程式碼編輯器中輸入override,按空白鍵,你將會看到一串基於類別的可覆寫方法,如圖2所示。

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

圖1  可覆蓋方法列表

7、使用擴展的配置文件

感謝app.config(針對應用程式)和web.config配置文件,使我們可以處理複雜的應用程式級設置,但是我們還是要處理不同環境設定面臨的各種問題,這裡指的是開發、測試和生產環境的設定。

我們必須恢復到一個特定的環境以便進行分析、測試或調式部分程式碼,在這個過程中,每一次設定和調整都很乏味。

例如,每一次恢復可能都要重新設定ConnectionStrings(連接字串),現在你可以透過外部檔案引用使用ConfigSource屬性來解決這個問題。例如,下面的程式碼引用了一個deveploment.config外部設定檔。

<connectionStrings configSource="configs\ development.config" />
登入後複製

你也可以在AppSettings設定小節使用這個有用的屬性。

8、克服String.Split方法的限制

String.Split是分隔字串最理想的方法,但據我們所知,它也有一些限制,如不能使用「||」或「::」這樣的字符,必須使用鍵盤上獨一無二的單個字符作為分隔符,這個缺點可以使用RegEx庫提供的Split方法來克服掉,下面的代碼顯示了使用RegEx Split分隔一個“||”分隔字串。

<CODE>
string delimitedString = "String.Split || RegEx.Split");
string[] ouputString = System.Text.RegularExpressions.Regex.Split(
 delimitedString,
 , System.Text.RegularExpressions.Regex.Escape("||"));
 </CODE>
登入後複製

9、元素的HTML程式碼視圖和設計視圖之間的快速切換(反之亦然)

在設計應用程式時,我們在IDE上花費的時間很多,大部分時間都耗在HTML內容和設計視圖上,Visual Studio 2010提供了設計視圖和HTML程式碼之間快速切換的功能。

如果你在HTML視圖中,定位你想在設計視圖中查看的元素,然後切換到設計視圖,你想查看的元素應該處於選中狀態,此外,屬性視窗現在也應該顯示的是選取元素的屬性。
與此類似,當你在設計視圖中,選取元素,然後切換到程式碼視圖,你選取的元素對應的HTML程式碼應該是高亮狀態。

10、快速搜尋資料庫中的資料

雖然資料表支援Find和Select方法選擇行,但它們都沒有DataView的方法好用,DataView提供了一個FindRows方法,它可以使用排序列上建立的索引,因此速度更快。
希望這些技巧可以幫助你節省寶貴的程式時間,趕快去試試吧!

更多C#程式設計和Visual Studio使用技巧(下)相關文章請追蹤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教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
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