、ReSharperのは私に警告できます:Cannot cast expression of type 'Color' to type 'UIntPtr'
を。 (実際には、ReSharperのは、それが実際のエラーだと思っているようです。)UIntPtrに列挙型をキャストReSharperの警告が、以下のコードではありませんコンパイラの警告
しかし、そこにはコンパイラの警告はありません、それが正常に動作します。
これは私にはReSharperのバグのように見えます。それは...ですか?それともコンパイラが心配していないことについて悪いことがありますか?
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.
}
}
}
私は警告が最初のint型に値をキャストすることによって、離れて行くことができます(私はReSharperの7.1.1を使用しています)ので、私は回避策があります。
UIntPtr test = (UIntPtr)(int) Color.Red;
ベストの推測では、resharpersの問題は、それが実行時に失敗したり、また、64ビットシステム上の問題を引き起こす可能性があるプラットフォーム –
間で予期しない動作をする場合があるということです。 – alzaimar
@alzaimarどのように?私は理由を見ることができません... –