将非int类型值转化为int类型值的方法研究

1

(int)是数值类型之间的显示强制型转换(char类型会被转化为他的unicode码);

当数值不满足隐式转换条件时使用,例如当我们从long类型到int类型就需要使用显式转换,否则会产生编译错误。

示例:

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
  public static void Main()
       {
           
//打印34
           Console.WriteLine((int)34.46);
           
           
//打印49
           Console.WriteLine((int)'1');
           
           
//不能通过编译
           Console.WriteLine((int)"123");
       }

 

2.

int.Parse()是将数字的字符串表示形式转换为它的等效 32 位有符号整数。
如果字符串为null,则抛出ArgumentNullException异常;
如果字符串内容不全是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常。
示例:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
public static void Main()
       {
           
//打印123
           Console.WriteLine(int.Parse("123"));

           
//抛出抛出ArgumentNullException异常
           Console.WriteLine(int.Parse(null));

           
//抛出FormatException异常
           Console.WriteLine(int.Parse("123a"));

           
//抛出OverflowException异常
           Console.WriteLine(int.Parse("30000000000"));
       }
 

 3
int.TryParse(string s,out int result)当此方法返回时,如果转换成功,则包含与 s 所包含的数字等效的 32 位有符号整数值;
如果转换失败,则result为0,它不会产生异常。
如果 s 参数为 nullNothingnullptrnull 引用,格式不正确,或者表示的数字小于超过int的范围,则转换会失败。
如果 字符串 转换成功,则返回为t rue;否则返回 false。
示例:

       
ContractedBlock.gif ExpandedBlockStart.gif Code
public static void Main()
       {
           
int result;

           
//打印true result值为123
           Console.WriteLine(int.TryParse("123",out result));
           Console.WriteLine(result);

           
//打印false result值为0
           Console.WriteLine(int.TryParse("123ab"out result));
           Console.WriteLine(result);

           
//打印false result值为0
           Console.WriteLine(int.TryParse(nullout result));
           Console.WriteLine(result);

           
//打印false result值为0
           Console.WriteLine(int.TryParse("3000000000"out result));
           Console.WriteLine(result);
       }
 

 4
Convert.ToInt32()是将指定的值转换为 32 位有符号整数;
Convert.ToInt32() 则可以将多种类型的值转换为 int  类型,因为它有许多重载版本;
需要注意的是Convert.ToInt32(char c)是将指定的字符c的unicode码转化为等效的32位有符号数,而不是直接转化字符的具体内容;
如这条语句Convert.ToInt32('1') 返回的结果是:49!
如果字符串为null,则返回0;如果字符串内容不全是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常。
示例:

ContractedBlock.gif ExpandedBlockStart.gif Code
public static void Main()
       {

           
//打印123
           Console.WriteLine(Convert.ToInt32("123"));

           
//打印0
           Console.WriteLine(Convert.ToInt32(null));

           
//打印false result值为49
           Console.WriteLine(Convert.ToInt32('1'));

           
//抛出FormatException异常
           Console.WriteLine(Convert.ToInt32("123asd"));

           
//抛出OverflowException异常
           Console.WriteLine(Convert.ToInt32("3000000000"));
       }

 

我的独立博客:铁骑世界

欢迎大家访问!

转载于:https://www.cnblogs.com/tieqixia/archive/2009/06/05/1497253.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值