Compilateur C# et implicit : peut mieux faire...
Imaginons le cas suivant :
class A
{
public static implicit operator B(A a)
{
return new B(a);
}
}
class B
{
public B(A a)
{
}
}
Ce code compile : normal.
Maintenant sur le code suivant :
class A
{
public static implicit operator B(A a)
{
return new A();
}
}
ne devrait pas compiler pourtant il compile !
Beaucoup moins embêtant, le code suivant ne compile pas alors qu'il pourrait :
class Program
{
static void Main(string[] args)
{
C c = new A();
}
}
class A
{
public static implicit operator B(A a)
{
return new B(a);
}
}
class B
{
public B(A a)
{
}
public static implicit operator C(B b)
{
return new C(b);
}
}
class C
{
public C(B b)
{
}
}
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :