Disons que vous avez vous-même une classe comme les suivantes:Le compilateur C# effectuera-t-il plusieurs conversions implicites pour passer d'un type à un autre?
public sealed class StringToInt {
private string _myString;
private StringToInt(string value)
{
_myString = value;
} public static implicit operator int(StringToInt obj)
{
return Convert.ToInt32(obj._myString);
}
public static implicit operator string(StringToInt obj)
{
return obj._myString;
}
public static implicit operator StringToInt(string obj)
{
return new StringToInt(obj);
}
public static implicit operator StringToInt(int obj)
{
return new StringToInt(obj.ToString());
}
}
Est-ce que vous alors en mesure d'écrire du code comme le suivant:
MyClass.SomeMethodThatOnlyTakesAnInt(aString);
sans lui indiquant qu'il n'y a pas de conversion implicite de chaîne à int?
[Oui, je pourrais tester moi-même, mais je pensais que je le mettrais là-bas et voir ce que tous les gourous ont à dire]
"Oui, je peux le tester moi-même mais je pensais que je mettrais là-bas et voir ce que tous les gourous ont à dire "- c'est une phrase étrange. Vous avez fait tous ces efforts pour générer cette classe, mais vous n'avez pas touché F5? –
On dirait que vous devriez le tester vous-même comme vous l'avez dit et poster une réponse, mais je ne suis pas un gourou. –
Je l'ai écrit dans la boîte de question SO. : D – RCIX