Рассмотрим следующий код:
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.
Но я хочу иметь возможность сделать следующее, если это возможно.
TextType textFromStringConstant = "SomeOtherText";
Я не могу расширить класс String с помощью неявной перегрузки оператора TextType, но есть ли способ присвоить литеральную строку другому классу (который обрабатывается методом или чем-то еще)?
String является ссылочным типом, поэтому, когда они разрабатывали C #, им, очевидно, приходилось использовать какой-то способ для получения строкового литерала в классе. Я просто надеюсь, что это не жестко закодировано в языке.