سؤال

النظر في الرمز التالي:

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);
}

إلى صفك؟ قون

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top