8

Consider the following code:

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.

But I want to be able do the following, if possible.

TextType textFromStringConstant = "SomeOtherText";

I can't extend the String class with the TextType implicit operator overload, but is there any way to assign a literal string to another class (which is handled by a method or something)?

String is a reference type so when they developed C# they obviously had to use some way to get a string literal to the class. I just hope it's not hardcoded into the language.

Jon Seigel
  • 12,251
  • 8
  • 58
  • 92
Kornelije Petak
  • 9,412
  • 15
  • 68
  • 96

2 Answers2

9
public static implicit operator TextType(String text) {
    return new TextType(text);
}
ChaosPandion
  • 77,506
  • 18
  • 119
  • 157
6

Add

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

to your class? :)

Benjamin Podszun
  • 9,679
  • 3
  • 34
  • 45