1
(int)是数值类型之间的显示强制型转换(char类型会被转化为他的unicode码);
当数值不满足隐式转换条件时使用,例如当我们从long类型到int类型就需要使用显式转换,否则会产生编译错误。
示例:
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异常。
示例:
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。
示例:
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(null, out 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异常。
示例:
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"));
}
我的独立博客:铁骑世界。
欢迎大家访问!