Question

Considérez le code suivant:

public class TextType {

    public TextType(String text) {
        underlyingString = text;
    }

    public static implicit operator String(TextType text) {
        return text.underlyingString;
    }

    private String underlyingString;
}

TextType text = new TextType("Something");
String str = text; // This is OK.

Mais je veux pouvoir faire ce qui suit, si possible.

TextType textFromStringConstant = "SomeOtherText";

Je ne peux pas étendre la classe String avec la surcharge de l'opérateur implicite TextType, mais est-il possible d'assigner une chaîne littérale à une autre classe (qui est gérée par une méthode ou quelque chose)?

chaîne est un type de référence quand ils ont développé en C #, ils avaient évidemment d'utiliser un moyen d'obtenir une chaîne littérale à la classe. J'espère juste que ce n'est pas hardcoded dans la langue.

Était-ce utile?

La solution

public static implicit operator TextType(String text) {
    return new TextType(text);
}

Autres conseils

Ajouter

public static implicit operator TextType(string content) {
  return new TextType(content);
}

à votre classe? :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top