欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 隐式转换关键字 implicit

程序员文章站 2022-05-13 23:46:18
关键字用于声明隐式的用户定义类型转换运算符。 如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。 引用摘自: "implicit(C 参考)" 仍以Student求和举例 不使用 求和 使用 求和: ......

implicit 关键字用于声明隐式的用户定义类型转换运算符。 如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。

引用摘自:implicit(c# 参考)

仍以student求和举例

    class student
    {
        /// <summary>
        /// 语文成绩
        /// </summary>
        public double chinese { get; set; }

        /// <summary>
        /// 数学成绩
        /// </summary>
        public double math { get; set; }
    }

不使用implicit 求和

    class program
    {
        static void main(string[] args)
        {
            var a = new student
            {
                chinese = 90.5d,
                math = 88.5d
            };

            //a的总成绩 语文和数据的总分数
            console.writeline(a.chinese + a.math);          
        }
    }

使用implicit

    class student
    {
        /// <summary>
        /// 语文成绩
        /// </summary>
        public double chinese { get; set; }

        /// <summary>
        /// 数学成绩
        /// </summary>
        public double math { get; set; }

        /// <summary>
        /// 隐式求和
        /// </summary>
        /// <param name="a"></param>
        public static implicit operator double(student a)
        {
            return a.chinese + a.math;
        }
    }

求和:

    class program
    {
        static void main(string[] args)
        {
            var a = new student
            {
                chinese = 90.5d,
                math = 88.5d
            };

            double total = a;

            //a的总成绩 语文和数据的总分数
            console.writeline(total);
        }
    }