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

StackOverflow https://stackoverflow.com/questions/2128241

Вопрос

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

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);
}

в ваш класс? :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top