如何在.net中创建像String类这样的密封类,这样我们就可以在不创建像String str="abc&qu

本文关键字:创建 String str qu quot abc 就可以 net 密封类 我们 | 更新日期: 2023-09-27 18:19:19

我想在。net中创建一个类似string类的类。String是一个密封类,我们可以直接给它赋值,比如字符串str="Cat";

如何创建这样的密封类?

如何在.net中创建像String类这样的密封类,这样我们就可以在不创建像String str="abc&qu

string可以从string字面值赋值,并不是因为该类是密封的。有关说明,请参阅文档:http://msdn.microsoft.com/en-us/library/88c54tsw(v=VS.100).aspx

对于string,它可以工作,因为字符串字面值默认会转换为字符串对象,但您可以使用隐式操作符为您自己的类实现相同的功能:

public class MyCustomClass
{
    string mString;
    public MyCustomClass(string str)
    {
        mString = str;
    }
    /* Structure of the implicit operator:
     * modifier static implicit operator destinationType(sourceType value)
     */
    public static implicit operator MyCustomClass(string value)
    {
        MyCustomClass cls = new MyCustomClass(value);
        return cls;
    }
    public static implicit operator string(MyCustomClass cls)
    {
        if (cls == null)
            return null;
        return cls.mString;
    }
}

那么你可以用下面的例子:

MyCustomClass cls = "Hello!";
string str = cls;