相关疑难解决方法(0)

为什么我不能定义隐式和显式运算符?

为什么我不能像这样定义隐式和显式运算符?

    public class C
    {
        public static implicit operator string(C c)
        {
            return "implicit";
        }

        public static explicit operator string(C c)
        {
            return "explicit";
        }
    }
Run Code Online (Sandbox Code Playgroud)

你可以这样做虽然:)

    class Program
    {
        public class A
        {

        }

        public class B
        {
            public static implicit operator A(B b)
            {
                Console.WriteLine("implicit");
                return new A();
            }
        }

        public class C : B
        {
            public static explicit operator A(C c)
            {
                Console.WriteLine("explicit");
                return new A();
            }
        }

        static void Main(string[] args)
        {
            C c = new …
Run Code Online (Sandbox Code Playgroud)

c# operator-overloading

31
推荐指数
2
解决办法
6690
查看次数

标签 统计

c# ×1

operator-overloading ×1