باستخدام ثوابت السلسلة في التحويل الضمني
-
22-09-2019 - |
سؤال
النظر في الرمز التالي:
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 ، ولكن هل هناك أي طريقة لتعيين سلسلة حرفية لفئة أخرى (يتم التعامل معها بواسطة طريقة أو شيء ما)؟
السلسلة هي نوع مرجعي ، لذلك عندما تطورت C# من الواضح أنه كان عليهم استخدام طريقة ما للحصول على سلسلة حرفية إلى الفصل. آمل فقط أن لا يتم ترميزها في اللغة.
المحلول
public static implicit operator TextType(String text) {
return new TextType(text);
}
نصائح أخرى
يضيف
public static implicit operator TextType(string content) {
return new TextType(content);
}
إلى صفك؟ قون
لا تنتمي إلى StackOverflow