Resharper warning casting enum to UIntPtr, but no compiler warning
在下面的代码中,resharper给了我一个警告:
但是,没有编译器警告,它工作正常。
对我来说,这看起来像是一个新的病毒。它是?或者编译器不担心它有什么不好的地方吗?(我使用的是Resharper 7.1.1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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使警告消失,因此我有一个解决方法:
1 | UIntPtr test = (UIntPtr)(int) Color.Red; |
This looks like a Resharper bug to me. Is it?
对:
RSRP-78748 False 'conversion does not exist' (UIntPtr)
1
2
3
4
5
6
7
8
9
10
11 using System;
class A
{
static void Main()
{
E? x = 0;
UIntPtr z = (UIntPtr)x;
}
}
enum E { }It is a known spec devation.
截至2013年3月5日尚未修复。