C# www.129028.com金沙:隐式转换关键字 implicit

日期:2019-10-21编辑作者:编程

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

www.129028.com金沙,引用摘自: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);
        }
    }

本文由www.129028.com金沙发布于编程,转载请注明出处:C# www.129028.com金沙:隐式转换关键字 implicit

关键词:

C#枚举描述获取

 public static class EnumExtension     {         public static string GetDescription(this Enum value)         {            ...

详细>>

www.129028.com金沙探索C#之6.0语法糖剖析

阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导...

详细>>

python列表常用内建方法www.129028.com金沙

abc = ['a',1,3,'a']#abc.pop(1) #删除索引1的值。结果['a', 3]#abc.append([123]) #结果:['a', 1, 3, [123]]#abc.extend([1234,456]) #在列表未尾...

详细>>

使用Linq查找重复

1 namespace RemoveTheSame 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 ListUser list = new ListUser() 8 { 9 new User{Id=1,Name="user...

详细>>