300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C#学习记录——使用Convert命令进行显示转换

C#学习记录——使用Convert命令进行显示转换

时间:2023-09-11 11:23:10

相关推荐

C#学习记录——使用Convert命令进行显示转换

使用Convert命令进行显示转换

今天阅读《C#入门经典》第5版,边学习边记录。

Convert命令可进行显示转换汇总

其中val可以是大多数变量类型(如果这些命令不能处理该类型的变量,编译器就会告诉你)。

如上表所示,转换的名称略不同于C#类型名称,例如,要转换为int,应使用Convert.ToInt32(val)。这是因为这些命令来自于.NET Framework的System名称空间,而不是本机C#本身。这样他们就可以在除C#以外的其他.NET兼容语言中使用。

对于这些转换要注意的一个问题是,他们总是要进行溢出检查,checkd和uncheckd关键字以及项目属性设置不起作用。

类型转换练习

下面示例包括许多类型转换。它声明和初始化许多不同类型的变量,再在它们之间进行隐式和显示转换。

(1)代码如下:

using System;namespace L004_ConsoleApp1{class Program{static void Main(string[] args){short shortResult, shortVal = 5;int integerVal = 45;long longResult;float floatVal = 20.5F;double doubleResult, doubleVal = 88.888;string stringResult, stringVal = "26";bool boolVal = true;Console.WriteLine("阿雷 Variable Conversion Examples\n");doubleResult = floatVal * shortVal;Console.WriteLine("Implicit,->double:{0}*{1}->{2}", floatVal, shortVal, doubleResult);shortResult = (short)floatVal;Console.WriteLine("Explicit,->short:{0}->{1}", floatVal, shortResult);stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal);Console.WriteLine("Explicit,->string:\"{0}\"+\"{1}\"->{2}", boolVal, doubleVal, stringResult);longResult = integerVal + Convert.ToInt64(stringVal);Console.WriteLine("Mixed,->long:{0}+{1}->{2}", integerVal, stringVal, longResult);Console.ReadKey();}}}

(2)执行代码,结果如下图所示:

示例说明

这个示例包含多种转换类型,既有简单赋值,也有在表达式中进行的转换。必须考虑这两种情况,因为每一个非一元运算符的处理都可能要进行类型转换,而不仅仅是赋值运算符。例如:

floatVal * shortVal

其中把一个short值与一个float值相乘。在这样的指令中,没有指定显示转换,应在可能的情况下进行隐式转换。在这个示例中,唯一有意义的隐式转换是把short值转换为float(因为把float值转换为short需要显示转换),所以这里使用隐式转换。

也可以重新编写这个过程,使用下述代码:

shortVal*(short)floatVal

这并不表示两个short相乘的结果将返回一个short值。因为这个操作很可能大于32767(这是short可以包含的最大值),所以这个操作的结果实际上是int。

使用这个数据类型转换语法执行显式转换,其运算符的优先级与其他一元运算符一样,都是优先级中的最高级,如++(用作前缀)。

如果语句涉及混合类型,就根据运算符的优先级,在处理每个运算符时执行转换。这意味着可能出现“中间”转换,例如:

doubleResult = floatVal + (shortVal * floatVal);

要处理的第一个运算符是*,如上所示,它把shortVal转换为float。接着处理+运算符,它不需要进行任何转换,因为这是把两个float值相加。在最后处理=运算符时,这个计算的float结果转换为double。

这个转换过程初看起来比较复杂,但只要按照运算符的优先级,把表达式分解为不同的部分,就可以弄明白这个过程。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。