次のコードを検討してください。
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 クラスを拡張することはできませんが、リテラル文字列を別のクラス (メソッドまたは何かによって処理される) に割り当てる方法はありますか?
文字列は参照型であるため、C# を開発したとき、クラスに文字列リテラルを取得するために何らかの方法を使用する必要があったことは明らかです。言語にハードコーディングされていないことを願っています。