Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在.net中创建像字符串类这样的密封类,这样我们就可以在不创建像字符串str=";这样的实例的情况下赋值;abc";_C# - Fatal编程技术网

C# 如何在.net中创建像字符串类这样的密封类,这样我们就可以在不创建像字符串str=";这样的实例的情况下赋值;abc";

C# 如何在.net中创建像字符串类这样的密封类,这样我们就可以在不创建像字符串str=";这样的实例的情况下赋值;abc";,c#,C#,我想在.NET中创建一个类似stringclass的类String是一个密封类,我们可以像Stringstr=“Cat”那样直接为这个类赋值 如何创建这样的密封类?可以从字符串文本分配字符串的事实并不是因为类是密封的。有关说明,请参阅文档: 对于字符串,它可以工作,因为默认情况下字符串文字被转换为字符串对象,但您可以使用隐式运算符为自己的类实现相同的转换: public class MyCustomClass { string mString; public MyCustomC

我想在.NET中创建一个类似
string
class的类
String
是一个密封类,我们可以像String
str=“Cat”那样直接为这个类赋值


如何创建这样的密封类?

可以从字符串文本分配字符串的事实并不是因为类是密封的。有关说明,请参阅文档:

对于字符串,它可以工作,因为默认情况下字符串文字被转换为字符串对象,但您可以使用隐式运算符为自己的类实现相同的转换:

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;