簡體   English   中英

根據const值強制C#編譯器錯誤

[英]Force C# compiler error based on const value

我在C#類中定義了一個私有const int。 如果此int mod 3的值等於0,我希望編譯失敗並顯示錯誤。我該如何完成?

蒂莫西·庫里(Timothy Khouri)差不多明白了。 應該是這樣的:

int compilerError = 1 / (MY_CONST % 3 == 0 ? 1 : 0);

盡管有一個用於生成編譯時錯誤的#error預處理程序指令,但它無法基於const值的存在而存在。 它僅適用於無法分配值的編譯器符號,如“ DEBUG”。

抱歉,我在下面說的那個代碼行不通,但這會:)

int pointless = 1 / (MY_CONST % 3);

之所以會奏效,是因為您將獲得一個編譯時錯誤,“不能以零表示”。 您的“ MY_CONST”字段必須為(一旦被3修改)不等於零的任何值。

嘗試這個:

if (MY_CONST % 3 != 0) { int compilerError = 1 / 0; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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