zoukankan      html  css  js  c++  java
  • (原创)c#学习笔记05--变量的更多内容01--类型转换01--隐式转换

    第五章 变量的更多内容

      本章内容:

      ●  如何在类型之间进行隐式和显式转换
      ●  如何创建和使用枚举类型
      ●  如何创建和使用结构类型
      ●  如何创建和使用数组
      ●  如何处理字符串值

      首先要讨论的主题是类型转换,即把值从一种类型转换为另一种类型。

      接着阐述另外一些类型的变量:

        枚举——变量类型,用户定义了一组可能的离散值,这些值可以用人们能理解的方式使用。

        结构——合成的变量类型,由用户定义的一组其他变量类型组成。

        数组——包含一种类型的多个变量,可以以索引方式访问各个数值。

      这些类型比前面使用的简单类型复杂一些,但可以使工作更容易完成。最后,学习另一个与字符串相关的主题——基本字符串处理。

    5.1  类型转换

      类型转换采用以下两种形式:

        隐式转换:从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换。

        显式转换:从类型A到类型B的转换只能在某些情况下进行,转换的规则比较复杂,应进行某种类型的处理。

    5.1.1  隐式转换

      隐式转换不需要做任何工作,也不需要另外编写代码。考虑下面的代码:

    var1 = var2; 

      如果var2的类型可以隐式地转换为var1类型,这个赋值语句就涉及到一个隐式转换。它也可能只处理相同类型的两个变量,不需要隐式转换。例如,ushort和char的值是可以互换的,因为它们都可以存储0~65535之间的数字,在这两个类型之间可以进行隐式转换,如下面的代码所示:

    ushort destinationVar; 
    char sourceVar = 'a'; 
    destinationVar = sourceVar; 
    Console.WriteLine("sourceVar val: {0}", sourceVar); 
    Console.WriteLine("destinationVar val: {0}", destinationVar); 

      这里存储在sourceVar中的值放在destinationVar中。在用两个Console.WriteLine()命令输出变量时,得到如下结果:

    sourceVar val: a 
    destinationVar val: 97 

      即使两个变量存储的是相同的信息,使用不同的类型解释它们时,方式也是不同的。

      简单类型有许多隐式转换;bool和string没有隐式转换,但数值类型有一些隐式转换。表5-1列出了编译器可以隐式执行的数值转换(记住,char存储的是数值,所以char被当作一个数值类型)。

     

      这些类型的隐式转换规则是:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。

      其原因是很简单的。如果要把一个值放在变量中,而该值超出了变量的取值范围,就会出问题。例如,short类型的变量可以存储0~32767的数字,而byte可以存储的最大值是255,所以如果要把一个short值转换为byte值,就会出问题。如果short包含的值在256~32767之间,相应数值就不能放在byte中。

      但是,如果short类型变量中的值小于255,就应能转换这个值,对吗?答案是可以。具体地说是可以,但必须使用显式转换。执行显式转换有点类似于“我已经知道你对在这么做提出了警告,但我将对其后果负责”。

  • 相关阅读:
    csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
    java 随机数 优惠码 生成 随机字串
    JSF primefaces session view expired 会话失效后页面跳转
    primefaces 查询 点击按钮 加载 动画 ajax loader
    时间戳 时区 java mysql
    JBoss 系列十四:JBoss7/WildFly如何加载外部的文件或properties文件
    MQTT 消息 发布 订阅
    mosquitt win32
    Hibernate JPA实体继承的映射(一) 概述
    wildfly jboss 优化配置
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4908553.html
Copyright © 2011-2022 走看看