2018-05-13

C# 從 Delegate 到 Lambda

/* 定義一個 delegate */
public delegate string MyDel(int id);


/* 宣告一個 Method */
public static string MethodA(int id)
{
    return " { " + id + " } ";
}


/* 將 MethodA 指派給一個 MyDel */
MyDel fu = MethodA;

/* 接著就可以這樣呼叫 delegate */
string result = fu(22);
System.Console.WriteLine(result);



/* 用 delegate 關鍵字建立 MyDel */
MyDel fu = delegate(int id)
{
    return " { " + id + " } ";
};



/* 用 Lambda 語法建立 MyDel */
MyDel fu = (int id) => {
    return " { " + id + " } ";
};



/* 因為 MyDel 已經定義參數為 int 了,所以可以省略 int */
MyDel fu = (id) => {
    return " { " + id + " } ";
};



/* 因為是單參數,所以可以省略小刮號 */
MyDel fu = id => {
    return " { " + id + " } ";
};



/* 接著是單純的 return,所以可以省略大刮號跟 return */
MyDel fu = id => " { " + id + " } ";

 


Ref:
匿名函式 (C# 程式設計手冊)
使用委派 (C# 程式設計手冊)
2018-05-12

Windows Server 磁碟清理


磁碟清理
DISM.exe /online /Cleanup-Image /StartComponentCleanup

清理系統 Service Pack 備份檔案
DISM.exe /Online /Cleanup-Image /SPSuperseded

JavaScript 正規表示式 跳脫

RegExp.escape = function(str) {
    return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
};

/* use sample */
new RegExp(RegExp.escape("[te()st]"));

Visual Studio 快捷鍵

Ctrl + L刪除行
Ctrl + X剪下行(游標不選取文字)
Ctrl + C複製行(游標不選取文字)
Ctrl + J呼叫出類別成員
Ctrl + K,C註解選取範圍
Ctrl + K,U取消註解選取範圍
Ctrl + R,R重新命名變數
F2重新命名變數
Ctrl + Enter上方插入一列
Ctrl + Shift + Enter下方插入一列
Ctrl + 减號回到上次游標位置
CTRL + SHIFT + 减號反之
Ctrl + F3找當前選取
F3找下一個
Shift + F3找上一個
Ctrl + F尋找文字
Ctrl + Shift + F跨檔案尋找文字
Ctrl + H取代文字
Ctrl + Shift + H跨檔案取代文字
Ctrl + J顯示物件的成員清單
Ctrl + K, D格式化文件
Ctrl + K, F格式化選取範圍
Ctrl + E, S顯示空白字元
Ctrl + E, \刪除行尾空白
Ctrl + Alt + ]對齊等號
Ctrl + ]切換至對應刮號
F12轉至定義
Ctrl + F12轉至實做
Alt + F12查看定義
F5偵錯建置
Ctrl + F5建置
Ctrl + U小寫
Ctrl + Shift + U大寫
Alt + 上選取行上移
Alt + 下選取行下移
Ctrl + K, K切換書籤
Ctrl + .開啟智慧標籤選單
Shift + Alt + F10開啟智慧標籤選單