zoukankan      html  css  js  c++  java
  • C#类型转换

    类型的转换
    C#中类型转换(显隐)的机制分为两种:
    一、隐式转换(implicit conversions)
    二、显式转换(explict conversions)
    隐式转换不需要指明欲转变的类型;

    显式转换明确地使用转换运算符(cast)指定要转换成哪一种类型。
    C#允许程序员如果对于溢出进行处理
      checked:检查是否出现溢出
      unchecked:不检查是否出现溢出
      例如:

    int a;
      long b=200000000000;
      try
      {
         a=checked((int)b);
         //也可使用checked语句,而非checked操作符
         //checked
         //{
           // (int)b;
           //这里可以对多个语句进行检查是否溢出
         //}
      }
      catch(System.OverflowException)
      {
         MseeageBox.Show("发生了溢出!");
      }
    

    checked和unchecked的使用准则
      一、写代码时,将可能发生非预期溢出的代码放到一个checked块中
      二,写代码时,将允许发生溢出的代码显式地放到一个unchecked块中。

    C#中类型转换(值类型与引用类型)
      一、值类型的转换
      二、引用类型的转换
      开发人员经常需要将一个对象从一种类型转换成他的类型。CLR允许将一个对象强制转换成它的类型或者它的任何基类型。

      引用类型转换例子(包含is和as操作符的使用):

    class Fruit
      {
      }
      class Apple:Fruit
      {
       protect int i=1;
      }
      class Conversions
      {
         static void Main()
         {
            Fruit f=new Apple();
            Apple a;
            //强制转换
            ①a=(Apple)f;
            //在c#语言中进行强制类型转换的另一种方式是使用is操作符,
            //is操作符检查一个对象是否兼容于指定的类型,并返回一个boolean值。
            //is操作符永远不会抛出异常。
            ②if(f is Apple)
            {
               Apple a=(Apple)f;
               Console.Write(a.i);
            }
            //也可以用as实现
            ③a=f as apple
            if(a!=null)
            {
               Console.Write(a.i);
            }
            //判断f是否兼容apple,若f兼容而将其类型转换为apple并赋值给a,否则将返回null
           }
        }
    


      

    图片来源:陈广C#视频

  • 相关阅读:
    java中Switch的实现原理浅谈
    漫谈计算机编码:从ASCII码到UTF8
    从斐波那契数列看java方法的调用过程
    Java中的位运算及简单的算法应用介绍
    在powserdesigner中,如何将Name(中文注释)导入到sqlserver的字段说明中?
    关于ArcMap的符号库和字体
    ORACLE CHAR,VARCHAR,VARCHAR2,NVARCHAR类型的区别与使用
    在window 2008 上安装arcgisserver93,报arcgissom 密码不符合安全策略
    Power Designer反向数据库时遇到sqlstate=37000错误,解决方案!
    解决PowerDesigner 反向工程没有注释且如何将注释转换成PDM的name
  • 原文地址:https://www.cnblogs.com/lhard/p/2133542.html
Copyright © 2011-2022 走看看