MSDN examples只是編譯時錯誤。僅僅爲了解決編譯時錯誤而未經檢查?
這只是我看到@JonSkeet在這裏使用它的答案:https://stackoverflow.com/a/263416/360211,我不明白爲什麼如果它只是編譯時。
static void Main()
{
const int x = 4;
int y = int.MaxValue;
int z = x*y;
Console.WriteLine(z);
Console.ReadLine();
}
主要生產-4
,與此相同:
static void Main()
{
unchecked
{
const int x = 4;
const int y = int.MaxValue;
int z = x*y; // without unchecked, this is compile error
Console.WriteLine(z);
Console.ReadLine();
}
}
這將引發運行時:
static void Main()
{
checked
{
const int x = 4;
int y = int.MaxValue;
int z = x*y; //run time error, can checked be set system wide?
Console.WriteLine(z);
Console.ReadLine();
}
}
所以喬恩這樣做,因爲它可以廣集系統,編譯器標誌或以其他方式?
您的'y'是未檢查代碼中的'const',而不是已檢查的代碼中,如果它是檢查代碼中的'const',會扔comp迴旋時間錯誤。 – Bobson
@Bobson是故意顯示不同之處。 – weston
用於改善我的哈希代碼生成器助手類http://stackoverflow.com/a/10634833/360211 – weston