Im folgenden Code gibt Resharper mir eine Warnung: Cannot cast expression of type 'Color' to type 'UIntPtr'
. (Tatsächlich denkt Resharper, dass es ein tatsächlicher Fehler ist.)Resharper Warnung Casting Enum zu UIntPtr, aber keine Compiler-Warnung
Jedoch gibt es keine Compilerwarnung und es funktioniert gut.
Das sieht für mich wie ein Resharper-Fehler aus. Ist es? Oder gibt es etwas Schlechtes daran, worüber sich der Compiler keine Sorgen macht? (Ich verwende 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.
}
}
}
ich die Warnung gehen machen kann weg, indem der Wert in einen int ersten Casting, so habe ich eine Abhilfe:
UIntPtr test = (UIntPtr)(int) Color.Red;
Die beste Vermutung ist, dass Nachschärfer Probleme ist, dass es zur Laufzeit fehlschlagen oder unerwartet zwischen den Plattformen –
Es kann auch Probleme auf 64-Bit-Systemen verursachen. – alzaimar
@alzaimar Wie? Ich kann nicht sehen, warum ... –