2
我有一堆依賴於靜態字典和對方的字符串,但從不修改用戶代碼。喜歡的東西如下:(哪怕只有一次) 使用方法在編譯時創建常量
public static RegexDicts
{
public static readonly Dictionary<string, string> dict = new Dictionary<string, string>{
{"One", "1"},
//And so on
}
}
public static class RegexStrings
{
public static readonly string String1 = String.Join("|", RegexDicts.dict.Keys);
public static readonly string String2 = "Hi! (" + String1 + "(";
//...
}
眼下,所有的這些方法,必須每次在程序執行中執行
什麼是這些方法執行轉向的最佳方式編譯器,離開實際的可執行文件與預期的常量?更妙的是,是否有可能將其擴展到該字典本身 - 通過在編譯時讀取文件來構建字典?
如果我可以生成代碼並同時進行編譯,我很樂意在代碼生成中做到這一點。
這不會解決編譯問題。 –
@marceln T4模板將在編譯時發生 - 它可以在編譯階段之前創建實際的const值。這種基於模板的生成是T4設計的。 –