Rozważmy następujący kod:Korzystanie Stałe łańcuchowe w niejawna konwersja
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.
Ale chcę, aby być w stanie wykonać następujące czynności, jeśli to możliwe.
TextType textFromStringConstant = "SomeOtherText";
I nie można rozszerzyć klasę String z TextType niejawny przeciążenia operatora, ale czy jest jakiś sposób, aby przypisać ciągiem znaków do innej klasy (które jest obsługiwane przez metody lub coś)?
Łańcuch jest typem referencyjnym, więc gdy opracowali C#, musieli oczywiście użyć jakiegoś sposobu, aby uzyskać literał ciągów znaków dla klasy. Mam tylko nadzieję, że nie jest to zakodowane na stałe w tym języku.
Szczegóły w sekcji 10.10.3 specyfikacji. –