天天看點

C#筆記17 DataTime類型、斷言、internal關鍵字、GUID、Excel操作、正規表達式、通路剪貼闆、設計模式、版本控制

文章目錄

      • DataTime
      • 斷言Debug.Assert(bool);
      • internal關鍵字
      • GUID
      • 通路Excel
      • 正規表達式
      • 通路剪切闆
      • 設計模式
      • 參數化配置(避免寫死)
      • 其他介紹

DataTime

  • 最常用格式為:
yyyy-MM-dd HH:mm:ss
  • 實踐中,使用前導0的格式,可以很友善地直接比較時間的大小。
var dt1 = DataTime.Now;
Console.WriteLine(dt1.ToString("yyyy-MM-dd HH:mm:ss")); // 重載ToString(),改變輸出格式
Console.WriteLine(dt1.ToString("yyMMdd HH:mm:ss")); // 重載ToString(),改變輸出格式

var str1 = dt1.ToString("HH:mm:ss");
Thread.Sleep(1000);
var dt2 = DataTime.Now;
var str2 = dt2.ToString("HH:mm:ss");
// 統一時間格式,有前導0
Debug.Assert(string.Compare(str1, str2) < 0);
           
  • 也可使用Parse(str)進行解析。
var str = "14-2-3 1:1:1";
var dt = DataTime.Parse(str);
           

斷言Debug.Assert(bool);

  • 如果輸入false則報錯;
  • 否則程式正常運作。

internal關鍵字

  • 通路修飾符internal
  • 實踐中用于dll修飾

示例:建立一個類庫ClassLibrary,之後進行如下操作。(VS中類庫是預設把檔案屬性調成類庫,并自動生成一個dll;在引用中引用該類庫/dll即可)

namespace ClassLibrary{

	internal class Class2{}
	// 該類隻能在本類庫中使用

	public class Class3{}

	public class Class1{
		internal Class3 C = new Class3();
		// 外部可以通路Class1和Class3,但是不能通路包Class1.C。因為C是internal的。
	}
}
           

GUID

  • 全局唯一辨別符;
  • GUID是一堆随機字元串;
  • 廣泛用于系統資料庫、類标志,不可重複。
Console.WriteLine(Guid.NewGuid().ToString("D")); // 生成辨別符
           

通路Excel

  • COM組建
  • OleDbConnection
  • 引用其他DLL,比如NPOI

OleDbConnection較為常用,與資料庫聯用。

NPOI為國人寫的類庫。

一般使用别人寫好的輪子,稍微修改便可以。

正規表達式

  • 經典需求案例,判斷一個字元串是不是有效的郵箱。如下。
using System.Text.RegularExpression;

...;

static bool IsValidEmail(string strIn){
	return Regex.IsMatch(
		strIn, @"^([\w-\.]+)@((\[0-9]{1,3}\.[0-9]{1,3}\.)" + 
		@"|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?$");
}

static void Main(string[] args){
	if(IsValidEmail("abc")){
		Console.WriteLine("是");
	}else{
		Console.WriteLine("否");
	}
}
           
  • 正規表達式以^開頭,以$結尾。
  • 一般經典的字元都被寫好。
  • Regex.Split()、Regex.Replace(),根據正則去切割、去替換。

通路剪切闆

控制台程式沒法使用System.Windows.Form。CLipboard.SetText(“xxx”)在輸出類型為Windows應用程式項目中。

設計模式

  1. 單例模式
  2. 簡單工廠模式
  3. 觀察者模式
  4. 疊代器模式

參數化配置(避免寫死)

其他介紹

  • 《靈活軟體開發原則、模式與實踐》,類的設計原則、UML、設計模式、包的設計原則,理論與實踐兼具。
  • 版本控制,兩個操作,簽入和簽出。
  1. 簽出check out:簽出以後,檔案隻能簽出者通路;
  2. 簽入check in:簽出者修改完以後,簽入,大家擷取新的修改好的檔案。