Используя строковые константы в неявном преобразовании

Рассмотрите следующий код:

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#, они, очевидно, должны были использовать некоторый способ получить строковый литерал к классу. Я просто надеюсь, что это не hardcoded на язык.

8
задан Jon Seigel 10 April 2010 в 18:30
поделиться

2 ответа

public static implicit operator TextType(String text) {
    return new TextType(text);
}
.
9
ответ дан 5 December 2019 в 11:24
поделиться

Add

public static implicit operator TextType(string content) {
  return new TextType(content);
}

to your class? :)

6
ответ дан 5 December 2019 в 11:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: