Verwenden von Stringkonstanten in der impliziten Konvertierung
-
22-09-2019 - |
Frage
Betrachten Sie den folgenden Code:
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.
Aber ich möchte nach Möglichkeit Folgendes machen können.
TextType textFromStringConstant = "SomeOtherText";
Ich kann die String -Klasse nicht mit der überlastenden Texttype -Operator -Operator -Überladung erweitern, aber gibt es eine Möglichkeit, einer anderen Klasse eine wörtliche Zeichenfolge zuzuweisen (die mit einer Methode oder so ausgeführt wird)?
String ist ein Referenztyp. Wenn sie C# entwickelten, mussten sie offensichtlich eine Möglichkeit nutzen, um ein String -Literal in die Klasse zu bringen. Ich hoffe nur, dass es nicht in der Sprache festkodiert ist.
Lösung
public static implicit operator TextType(String text) {
return new TextType(text);
}
Andere Tipps
Hinzufügen
public static implicit operator TextType(string content) {
return new TextType(content);
}
zu deiner Klasse? :)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow