Erreur du compilateur CS0266
Impossible de convertir implicitement le type 'type1' en 'type2'. Une conversion explicite existe (un cast est-il manquant ?)
Cette erreur se produit quand votre code tente une conversion entre deux types qui ne peuvent pas être convertis implicitement, mais où une conversion explicite est disponible. Pour plus d’informations, consultez Cast et conversions de types.
Le code suivant présente des exemples qui génèrent l’erreur CS0266 :
// CS0266.cs
class MyClass
{
public static void Main()
{
// You cannot implicitly convert a double to an integer.
double d = 3.2;
// The following line causes compiler error CS0266.
int i1 = d;
// However, you can resolve the error by using an explicit conversion.
int i2 = (int)d;
// You cannot implicitly convert an object to a class type.
object obj = new MyClass();
// The following assignment statement causes error CS0266.
MyClass myClass = obj;
// You can resolve the error by using an explicit conversion.
MyClass c = (MyClass)obj;
// You cannot implicitly convert a base class object to a derived class type.
MyClass mc = new MyClass();
DerivedClass dc = new DerivedClass();
// The following line causes compiler error CS0266.
dc = mc;
// You can resolve the error by using an explicit conversion.
dc = (DerivedClass)mc;
}
}
class DerivedClass : MyClass
{
}
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour