在下面的代碼中,Resharper給我一個警告:Cannot cast expression of type 'Color' to type 'UIntPtr'
。 (實際上,Resharper認爲這是一個實際的錯誤。)Resharper警告將枚舉枚舉爲UIntPtr,但沒有編譯器警告
但是,沒有編譯器警告,它工作正常。
這看起來像一個Resharper bug給我。是嗎?或者編譯器不擔心的是它有什麼壞處? (我使用ReSharper的7.1.1)
using System;
namespace Demo
{
internal class Program
{
public enum Color { Red, Green, Blue }
private static void Main(string[] args)
{
UIntPtr test = (UIntPtr) Color.Red; // Resharper warning, no compile warning.
}
}
}
我能警告的值轉換成一整型先走開,讓我有一種變通方法:
UIntPtr test = (UIntPtr)(int) Color.Red;
最好的猜測是resharpers的問題是它可能會在運行時失敗或者在平臺之間出現意外的行爲 – 2013-03-05 11:17:57
它也可能在64位系統上導致問題。 – alzaimar 2013-03-05 14:22:10
@alzaimar如何?我不明白爲什麼...... – 2013-03-05 14:24:37