Использование строковых константов в неявном преобразовании
-
22-09-2019 - |
Вопрос
Рассмотрим следующий код:
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";
Я не могу расширить класс строки с помощью неявной перегрузки оператора TextType, но есть ли способ назначить буквальную строку другому классу (который обрабатывается методом или чем -то еще)?
Строка - это ссылочный тип, поэтому, когда они разработали C#, они, очевидно, должны были использовать какой -то путь, чтобы получить буквальную литературу для класса. Я просто надеюсь, что это не в твердом кодировании на язык.
Решение
public static implicit operator TextType(String text) {
return new TextType(text);
}
Другие советы
Добавлять
public static implicit operator TextType(string content) {
return new TextType(content);
}
в ваш класс? :)
Не связан с StackOverflow