Aşağıdaki kodu düşünün:kullanma dize sabitleri
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.
Ama mümkünse, aşağıdakileri yapmanız mümkün istiyorum.
TextType textFromStringConstant = "SomeOtherText";
Ben TextType örtülü operatör aşırı Dize sınıfını genişletmek olamaz, ama (bir yöntem ya da bir şey tarafından ele alınır) başka bir sınıfa değişmez bir dize atamak için herhangi bir yolu var mı?
Dize, bir referans türüdür, bu yüzden C# geliştirdiklerinde, açık bir şekilde, bir dizeyi baştan sona almak için bir yol kullanmak zorundaydılar. Umarım dile kodlanmış değildir.
Ayrıntılar için şartnamenin 10.10.3 bölümüne bakın. –