文章目錄
-
-
- 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應用程式項目中。
設計模式
- 單例模式
- 簡單工廠模式
- 觀察者模式
- 疊代器模式
參數化配置(避免寫死)
其他介紹
- 《靈活軟體開發原則、模式與實踐》,類的設計原則、UML、設計模式、包的設計原則,理論與實踐兼具。
- 版本控制,兩個操作,簽入和簽出。
- 簽出check out:簽出以後,檔案隻能簽出者通路;
- 簽入check in:簽出者修改完以後,簽入,大家擷取新的修改好的檔案。