[英]Can the C# compiler insert constant values that auto-increment on each usage at compile time?
有沒有辦法讓C#編譯器插入在編譯時自動遞增的常量值?
例如
MyFunc(NEXT_CONSTANT);
MyFunc(NEXT_CONSTANT);
MyFunc(NEXT_CONSTANT);
會產生這樣的代碼:
MyFunc(1);
MyFunc(2);
MyFunc(3);
不,語言中沒有任何內容可以做到這一點。
有些粗俗的黑客可以讓你跟蹤調用者文件/行/成員,並根據它自動增加(如果你使用的是C#5) - 但它實際上並不相同。
有基於工具的方法來此這將改變你的源代碼-但我會試着退后一步,看看你的實際需求和意圖(我們不知道此刻),並試圖找到內解決如果可以的話。
有一個這樣的事情 - 匯編版本的內部版本號。 如果將程序集版本設置為例如1.2.*
,則每個構建將更改最后兩個數字。 您可以輕松地在代碼中閱讀它 - 它不是常量,但如果您通過靜態屬性公開它,它可能會正常工作。
如果這還不夠,只需制作一個自定義構建目標。 使用可在每次構建之前修改的固定結構維護幾乎為空的C#文件應該不難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.