变量的更多内容-类型转换-使用Convert

 

    很多例子中使用的显式类型转换,与前面有一些区别。前面使用Convert.ToDouble()等命令把字符串值转换为数值,显然,这种方式不适合于所有的字符串。

    例如,如果使用Convert.ToDouble()把字符串Number转换为一个double值,执行代码就会出错。为了成功执行这种类型的转换,所提供的字符串必须是数值的有效表达方式,该数还必须是不会溢出的数,数值的有效表达式是:首先一个可选符号(加号或减号),然后是0位或多位数字,一个圆点后跟一位或多位数字,接着是一个可选的e或E,句点后跟一个可选符号和一位或多位数字(在这个序列之前或之后)和空格。利用这些可选的额外数据,就可以看出-1.2451e-24这样复杂的字符串是一个数值。

    以这种方式可以进行许多显式转换,如下所示:

     Convert.ToBoolean(val) val转换为bool

     Convert.ToByte(val) val转换为byte

     Convert..ToChar(val) val转换为char

     Convert.ToDecimal(val) val转换为decimal

     Convert.ToDouble(val) val转换为double

     Convert.ToInt16(val) val转换为short

     Convert.ToInt32(val) val转换为int

     Convert.ToInt64(val) val转换为long

     Convert.ToSByte(val) val转换为sbyte

     Convert.ToSingle(val) val转换为float

     Convert.ToString(val) val转换为string

     Convert.ToUInt16(val) val转换为ushort

     Convert.ToUInt32(val) val转换为uint

     Convert.ToUInt64(val) val转换为ulong

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

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

    对于这些转换要注意一个问题,它们总是要进行溢出检查,checked和unchecked关键字以及项目属性设置没有什么作用。

    做一个例子。它声明和初始化许多不同类型的变量,再在它们之间进行隐式和显式转换。

using  System;
using  System.Collections.Generic;
using  System.Text;

namespace  数据类型转换
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            
short  shortResult, shortVal  =   4 ;
            
int  integerVal  =   67 ;
            
long  longResult;
            
float  floatVal  =   10.5F ;
            
double  doubleResult, doubleVal  =   99.999 ;
            
string  stringResult, stringVal  =   " 17 " ;
            
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.ToSingle(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();
        }
    }
}

转载于:https://www.cnblogs.com/ta-bky/archive/2009/03/26/1422659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值