精华内容
下载资源
问答
  • C#显示转换和隐式转换

    千次阅读 2019-05-23 15:16:14
    C# 通过implicit 和 explicit可以实现隐式和显示转换; public class MyClass { public int iValue; public MyClass(int iValue) { this.iValue = iValue; } //显示转换 pu...

    C# 通过implicit 和 explicit可以实现隐式和显示转换;

       public class MyClass
       {
           public int iValue;
           public MyClass(int iValue)
           {
               this.iValue = iValue;
           }
           //显示转换
           public static explicit int(MyClass myClass)//(1)
           {
               return myClass.iValue;
           }
           public static explicit MyClass(int iValue)//(2)
           {
               return new MyClass(iValue);
           }
           隐式转换
              public static implicit int(MyClass myClass)//(3)
           {
               return myClass.iValue;
           }
           public static implicit MyClass(int iValue)//(4)
           {
               return new MyClass(iValue);
           }
    
       }
    

    使用方法:

         static void main(string[] args)
         {
              MyClass myClass = new MyClass(10);
              int iValue = myClass;//使用的函数(3),属于隐式转换
              int iValue1 = (int)myClass;//使用的函数(1),属于显示转换
              MyClass myClass1 = iValue;//使用的函数(4),属于隐式转换
              MyClass myClass2 = (MyClass)iValue1;//使用的函数(2),属于显示转换
         }
    
    展开全文
  • C#显示转换

    千次阅读 热门讨论 2017-02-14 11:26:33
    前言 上一章初步介绍了C#中的隐式转换,用了int和double这两种数据类型来举例,下面复习一下这个语句 double Chinese=convert.To(Double)

    前言

    上一章初步介绍了C#中的隐式转换,用了int和double这两种数据类型来举例,下面复习一下这个语句
    double Chinese1=Convert.ToDouble(Chinese);//当有小数出现时用这个。详细请看链接:

    http://blog.csdn.net/lxl51666/article/details/55055212

    既然有隐式转换,那么有没有显示转换呢?答案是当然有下面就来介绍一个例子:
    例如我们在计算圆的面积的时候会有小数π,半径,有可能半径是int类型,当然圆周率肯定是double型的了,那么在计算圆的面积时候是不能进行直接计算的,需要转换一成相同的数据类型。
    下面就是方法
    
    
     //计算圆的面积π=3.14,R=4
                int R = 4;
                double π = 3.1415;
    
                //方法一、强制转换
                //int π1 = (int)π;
                //将double类型显示转换为int类型,π由3.14变为了3,这里就丢了精度
    
                //方法二、使用math.Round()函数。
                //double π1 = Math.Round(π, 4);//括号中的第一个是要转换的变量,第二个是变量要保留几位小数。
    
                //方法三、用了隐式转换
                double π1 = Convert.ToDouble(π);
                double    S = π1 * R * R;
    
               
    
                Console.WriteLine("圆的面积为:{0}", S);
                Console.ReadKey();


    
    
    
    
    方法一出现了丢精度的问题,直接将π后的小数省略了,计算结果为:


    方法的的计算结果为:


    方法三是用的隐式转换结果为:



    后语

    显示转换和隐式转换在实践中是很实用,需要多加练习,熟练掌握,孰能生巧。
    展开全文
  • C#:ARGB与16进制颜色显示转换
  • c#实体类转换

    2019-01-07 21:20:59
    实用的.net实体类转换,在项目中稳定长期的使用,好用分享给大家!
  • C#将图片和字节流相互转换代码: usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Drawing; usingSystem.IO; namespaceMicrosoft.Form.Base { classImageToByte {...
  • c# 类型转换

    2021-01-20 05:49:20
    C#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例: object o = new Emplee(); Emplee e = (Emplee)o; 但是如果将一个对象转换成自己的派生类型是,会运行时报错: object o = ...
  • C#的隐式和显示类型转换

    万次阅读 多人点赞 2012-04-24 17:02:58
    关于隐式转换和显示转换,每种语言都有的,C#中当然也不例外。一般常用到的场合,一种是写运算表达式的时候,要保持整体的数据类型一致和计算准确,比如有一个变量a是int型,但是它是通过加减乘除得到的,那么在运算...

        关于隐式转换和显示转换,每种语言都有的,C#中当然也不例外。一般常用到的场合,一种是写运算表达式的时候,要保持整体的数据类型一致和计算准确,比如有一个变量a是int型,但是它是通过加减乘除得到的,那么在运算中就要考虑用显示转换,除的运算需要转换成float或double,再把结果强制转换为int;再一个就是传参数的时候,需要注意哪些需要显示转换,或者对集合赋值的时候也要注意类型的问题。
    1. 隐式类型转换
    所谓隐式转换,就是系统默认的转换,其本质是小存储容量数据类型自动转换为大存储容量数据类型。有如下几种:
    从sbyte类型到short,int,long,float,double,或decimal类型。

    从byte类型到short,ushort,int,uint,long,ulong,float,double,或decimal类型。

    从short类型到int,long,float,double,或decimal类型。

    从ushort类型到int,uint,long,ulong,float,double,或decimal类型。

    从int类型到long,float,double,或decimal类型。

    从uint类型到long,ulong,float,double,或decimal类型。

    从long类型到float,double,或decimal类型。

    从ulong类型到float,double,或decimal类型。

    从char类型到ushort,int,uint,long,ulong,float,double,或decimal类型。

    从float类型到double类型。


    2.显式类型转换

    显式类型转换,即强制类型转换。与隐式转换相反,而且强制转换会造成数据丢失。

    从sbyte到byte,ushort,uint,ulong,或char。

    从byte到sbyte或char。

    从short到sbyte,byte,ushort,uint,ulong,或char。

    从ushort到sbyte,byte,short,或char。

    从int到sbyte,byte,short,ushort,uint,ulong,或char。

    从uint到sbyte,byte,short,ushort,int,或char。

    从long到sbyte,byte,short,ushort,int,uint,ulong,或char。

    从ulong到sbyte,byte,short,ushort,int,uint,long,或char。

    从char到sbyte,byte,或short。

    从float到sbyte,byte,short,ushort,int,uint,long,ulong,char,或decimal。

    从double到sbyte,byte,short,ushort,int,uint,long,ulong,char,float,或decimal。

    从decimal到sbyte,byte,short,ushort,int,uint,long,ulong,char,float,或double。

    当转换有丢失信息或导致异常抛出,转换按照下列规则进行:

    对于从一种整型到另一种整型的转换,编译器将针对转换进行溢出检测,如果没有发生溢出,转换成功,否则抛出一个OverflowException异常。这种检测还与编译器中是否设定了checked选项有关。

    对于从float,double,或decimal到整型的转换,源变量的值通过舍入到最接近的整型值作为转换的结果。如果这个整型值超出了目标类型的值域,则将抛出一个OverflowException异常。

    对于从double到float的转换,double值通过舍入取最接近的float值。如果这个值太小,结果将变成正0或负0;如果这个值太大,将变成正
    无穷或负无穷。如果原double值是Nan,则转换结果也是NaN。

    对于从float或double到decimal的转换,源值将转换成小数形式并通过舍入取到小数点后28位(如果有必要的话)。如果源值太小,则结果为0;如果太大以致不能用小数表示,或是无穷和NaN,则将抛出InvalidCastException异常。

    对于从decimal到float或double的转换,小数的值通过舍入取最接近的值。这种转换可能会丢失精度,但不会引起异常。

     

     

    展开全文
  • C# 隐式转换 显示转换

    千次阅读 2013-12-13 22:06:26
    什么是显示转换:由程序员控制转换过程,通常只能在某些情况下进行。(double转int) 隐式的转换完全由编译器完成,程序员只需写value1=value2即可。但是只有当符合隐式转换条件才能通过编译,否则会报错。 显示...


    什么是隐式转换:转换的类型内部有对应implicit operator方法的可进行隐式转换


    什么是显示转换:转换的类内部有对应explicit operator或implicit operator方法的可进行显式转换


    隐式的转换由其内部implicit operator方法转换,程序员只需写value1=value2即可。

    显式的转换由其内部explicit operator方法转换,若没有explicit operator,将使用implicit operator方法。程序员需标明转换类型value1=(value1Type)value2。


    隐式转换方法示例:

        public class Type1
        {
            private int value = 0;
            public Type1(int value)
            {
                this.value = value;
            }
            //隐式的将double类型转为Type1类型
             public static implicit operator Type1(double v)
            {
                return new Type1(Convert.ToInt32(v));
            }
             //隐式的将Type1类型转为double类型
            public static implicit operator  double(Type1 v)
            {
                return Convert.ToDouble(v.value);
            }
        }

    使用时:

               Type1 tt = new Type1(123);
                double dd = tt;
         
                double d=222;
                Type1 t = d;


    显式转换方法示例:

     public class Type1
        {
            private int value = 0;
            public Type1(int value)
            {
                this.value = value;
            }
            //显示的将double类型转为Type1类型
            public static  explicit operator  Type1(double v)
            {
                return new Type1(Convert.ToInt32(v));
            }
            //显示的将Type1类型转为double类型
            public static explicit operator  double(Type1 v)
            {
                return Convert.ToDouble(v.value);
            }
        }

    使用时:

                Type1 tt = new Type1(123);
                double dd =(double) tt;
         
                double d=222;
                Type1 t = (Type1)d;


    注意:

    1.如果上面的Type1只定义了隐式转换方法(implicit operator),当对Type1显式转换时,将调用其隐式转换方法,但相反若只定义了显式转换方法(explicit oprator),直接进行隐式转却无法调用显式转换方法。
    2.在Type1内,相同类型间相同转换方向的显式与隐式转换方法不能同时存在:

    如:不能同时存在

           public static explicit operator double(Type1 v)
            {
                return Convert.ToDouble(v.value);
            }

           public static implicit operator double(Type1 v)
            {
                return Convert.ToDouble(v.value);
            }

    但是却可以同时存在:

           public static explicit operator Type1(double v)//将double显式转换为Type1
            {
                return new Type1(Convert.ToInt32(v));
            }
            public static implicit operator double(Type1 v)//将Type1隐式转换为double
            {
                return Convert.ToDouble(v.value);
            }



    PS:基本类型之间的数据转换有下面几个方法:(以double转int为例):

    double d=123;

    int i=0;

    1.i=Convert.ToInt32(d);

    2.i=Int.Parse(d.ToString());

    3.int.Trypase(d.ToString(),out i);

    4.i=(int)d;


    这四者的区别在于:

    第一种转换参数支持最多,可以支持大部分基本类型:double,bool,string,byte.....

    第二种是属于Int类型自己的转换方法,参数只能是string

    第三种与第二种类似,但是返回值是bool表示转换是否成功。他的特点在于如果转换失败不会抛出异常只会返回false,而第二种则会抛出异常。

    第四种只能是数值类型间的强制类型转换。


    展开全文
  • 详解c# 类型转换

    2020-12-17 07:22:47
    类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型...下面的实例显示了一个显式的类型转换: namespace TypeConversionApplication { class ExplicitConversion { static void Main(string
  • C# Json转换操作 枚举类型 Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型,如果没有显式声明基础类型,则使用Int32。 注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值 1、C#...
  • 导师接了校医院的项目,涉及到dcm医学图像的显示和存储问题。 demo实现 将本地的dcm图像转存为bmp图像 使用时 需要导入dicom包,只需修改dcm 路径即可。
  • C#度分秒转换

    2018-02-08 11:44:12
    c# 度分秒云代码及工程,用于转换经纬度坐标,可以进行单个或批量
  • c#中将整数转化为字符串Given a string and we ... 给定一个字符串,我们必须将其转换C#中的字符数组。 将字符串转换为char [] (Converting string to char[]) To convert a given string in char[] (charact...
  • 类型转换为后端model的bool类型; 因为后端model属性以前定义好了,现在不好修改为bool?,这时候不可直接赋值会报错; 这时候我们可以这样操作: if (test?.field != null) { model.field= (b...
  • c#中将整数转化为字符串Given a character array and we have to convert it into a string. ... char []转换C#中的字符串 (char[] to string in C#) In C#, we can convert a character array to the string,...
  • 隐式转换:同一类型之间的转换,一般为高向低转换,且转换过程中不带类型修饰符。 例如: ... 显示转换:不同类型间可以转换,转换过程中必须带类型修饰符,也叫强制转换。 例如:    
  • YUV格式(高效)视频转换C# 通过C实现底层封装调用 ~~~
  • c#中将整数转化为字符串Given a hexadecimal string and we have to convert it into an integer number. 给定一个十六进制字符串,我们必须将其转换为整数。 从十六进制字符串转换为整数 (Converting from ...
  • C#显示与隐式转换操作符

    千次阅读 2017-07-17 22:01:35
    C#类中显示与隐匿转换操作符同时只能实现一个// 显示转换操作符 static public explicit operator Salary(int n) { Salary s = new Salary(n); return s; } // 隐式转换操作符 static public implicit operator ...
  • c#中使用Convert命令进行显式转换

    千次阅读 2018-09-20 17:03:17
    ** Convert.ToBoolean(var) var转换为bool Convert.ToByte(var) var转换为byte Convert.ToChar(var) var转换为char Convert.ToDecimal(var) var转换为decimal Convert.ToDouble(var) ...
  • implicit 隐式转换 explicit 显示转换
  • ***隐式转换遵循以下规则。 如果参与运算的数据类型不相同,则先转换成同一类型,然后进行运算。 转换时按数据长度增加的方向进行,以保证精度不降低,例如int型和long型运算时,先把int数据转成long型后再进行...
  • as和强制转换之间最大的区别就在于如何处理用户自定义的转换。操作符 as和 is 都只检查被转换对象的运行时类型,并不执行其他的操作。如果被转换对象的运行时类型既不是所转换的目标类型,也不是其派生类型,那么...
  • C#界面转换以及当前时间显示(正确版Login:张三,Password:0000) 适合初学者
  • C# 隐式转换和显式转换

    千次阅读 2018-01-17 01:55:10
    5、Rect 类 不能显示转换为 int ,使用关键字 explicit 自定义 显式转换 *无论是自定义显式还是隐式转换 都必须是静态的 自定义隐式转换语法 public static implicit operator 目标类型(当前类类型...
  • C#数字转换&四舍五入

    2018-01-30 09:46:27
    c# 里面要作型别转换的方式有很多种,  下面列了几种型别的转换方式和遇到小数时怎么作四舍五入的情况 强制型别转换 int x = ( int ) 4.99 ; //结果为4 int x = ( int ) 4.1 ; //结果为4 有小数时会直接...
  • C# 2进制与16进制的转换 无限位
  • 把字符串转换成二维码并且显示出来的一个简洁的例子。
  • 根据项目的编译设置,显示转换溢出可能会报错,如果设置溢出且未使用checked检查,运行时如果发生溢出会产出未知的计算结果。 在数字运算时,会有默认的隐式转换 一、隐式转换 val1 = val2; // 写法简单。即 一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,891
精华内容 40,356
关键字:

c#显示转换

c# 订阅