Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
Impossibile determinare il tipo di espressione condizionale perché non esiste conversione implicita tra 'classe1' e 'classe2'.
Type of conditional expression cannot be determined because there is no implicit conversion between 'class1' and 'class2'
Le conversioni tra le classi sono utili quando si desidera che oggetti di classi differenti funzionino con lo stesso codice. Due classi che verranno utilizzate insieme non possono, tuttavia, includere conversioni reciproche e ridondanti.
Per correggere l'errore CS0173, verificare che sia presente solamente una conversione implicita tra l'oggetto class1 e l'oggetto class2, indipendentemente dalla direzione e dalla classe di appartenenza della conversione. Per ulteriori informazioni, vedere Tabella delle conversioni numeriche implicite (Riferimenti per C#) e Operatori di conversione (Guida per programmatori C#).
Esempio
Il seguente codice di esempio genera l'errore CS0173:
// CS0173.cs
public class C {}
public class A {}
public class MyClass
{
public static void F(bool b)
{
A a = new A();
C c = new C();
object o = b ? a : c; // CS0173
}
public static void Main()
{
F(true);
}
}
Il codice seguente comporta la generazione dell'errore CS0173 in Microsoft Visual Studio 2008, ma non in Visual Studio 2005.
//cs0173_2.cs
class M
{
static int Main ()
{
int X = 1;
object o = (X == 0) ? null : null; //CS0173
return -1;
}
}