Utilizzando costanti stringa in conversione implicita
-
22-09-2019 - |
Domanda
Si consideri il seguente codice:
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.
Ma io voglio essere in grado effettuare le seguenti operazioni, se possibile.
TextType textFromStringConstant = "SomeOtherText";
Non riesco a estendere la classe String con l'overload dell'operatore implicita texttype, ma c'è un modo per assegnare una stringa letterale di un'altra classe (che è gestito da un metodo o qualcosa del genere)?
String è un tipo di riferimento in modo da quando hanno sviluppato C # che ovviamente dovevano usare un modo per ottenere una stringa letterale alla classe. Spero solo che non è insita nel linguaggio.
Soluzione
public static implicit operator TextType(String text) {
return new TextType(text);
}
Altri suggerimenti
Aggiungi
public static implicit operator TextType(string content) {
return new TextType(content);
}
per la vostra classe? :)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow