簡體   English   中英

C#編譯器是否可以在編譯時插入每次使用時自動遞增的常量值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM