在隐式转换中使用字符串常量

时间:2010-01-24 18:43:59

标签: c# string operators implicit implicit-conversion

请考虑以下代码:

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隐式运算符重载扩展String类,但有没有办法将文字字符串分配给另一个类(由方法或其他东西处理)?

String是一种引用类型,因此当它们开发C#时,显然必须使用某种方式来获取类的字符串文字。我只是希望它不会硬编码到语言中。

2 个答案:

答案 0 :(得分:9)

public static implicit operator TextType(String text) {
    return new TextType(text);
}

答案 1 :(得分:6)

添加

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

到你的班级? :)