Uso de constantes de cadena en conversión implícita
-
22-09-2019 - |
Pregunta
Considere el siguiente código:
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.
Pero quiero poder hacer lo siguiente, si es posible.
TextType textFromStringConstant = "SomeOtherText";
No puedo extender la clase de cadena con la sobrecarga del operador implícito de TextType, pero ¿hay alguna forma de asignar una cadena literal a otra clase (que se maneja por un método o algo así)?
La cadena es un tipo de referencia, por lo que cuando desarrollaron C# obviamente tuvieron que usar alguna forma de obtener una cadena literal a la clase. Solo espero que no esté codificado en el idioma.
Solución
public static implicit operator TextType(String text) {
return new TextType(text);
}
Otros consejos
Agregar
public static implicit operator TextType(string content) {
return new TextType(content);
}
a tu clase? :)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow