Nel seguente codice, Resharper mi avvisa: Cannot cast expression of type 'Color' to type 'UIntPtr'
. (In realtà, Resharper pensa che si tratti di un errore effettivo.)Rilevazione enunciato di rilubazione enum su UIntPtr, ma nessun avvertimento del compilatore
Tuttavia, non vi è alcun avvertimento del compilatore e funziona correttamente.
Questo mi sembra un bug Resharper. È? O c'è qualcosa di negativo che il compilatore non si preoccupa? (Sto usando 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.
}
}
}
posso fare l'avvertimento andare via dal casting del valore di un int prima, quindi ho una soluzione:
UIntPtr test = (UIntPtr)(int) Color.Red;
La migliore ipotesi è che i problemi del ricondizionatore sono che potrebbe non riuscire in fase di runtime o comportarsi in modo imprevisto tra le piattaforme. –
Potrebbe anche causare problemi sui sistemi a 64 bit. – alzaimar
@alzaimar Come? Non riesco a capire perché ... –