2013-03-05 12 views
5

、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; 
+1

ベストの推測では、resharpersの問題は、それが実行時に失敗したり、また、64ビットシステム上の問題を引き起こす可能性があるプラットフォーム –

+0

間で予期しない動作をする場合があるということです。 – alzaimar

+0

@alzaimarどのように?私は理由を見ることができません... –

答えて

3

このルックスを私にResharperのバグのように。それは...ですか?

Yes

RSRP-78748偽 '変換が存在しない'(UIntPtr)は

using System; 

class A 
{ 
    static void Main() 
    { 
     E? x = 0; 
     UIntPtr z = (UIntPtr)x; 
    } 
} 
enum E { } 

これは既知のスペックdevationあります。 2013年3月5日の時点で固定されていない

+0

大感謝:このリンクを参照してください。失敗しました... –

関連する問題