int表示一种整型类型,是一种常见的,使用最多的变量类型;范围-2,147,483,648 到 2,147,483,647, 是Int32的别名;
long 是Int64 的别名(范围 -9223372036854775808 到 9223372036854775807);short 等同于Int16(范围 -32768 到 32767)
(1)类型转换
1、 int到 long、float、double或 decimal的直接隐式转换。
int i = 2;
long l = i;
float f = i;
double d = i;
decimal de = i;
相反, long、float、double或 decimal 到int 必须显示转换
例如: long l= 2.0 ; int i = (int)l
2、string 转换为 int
string s = “2”;
int.Parse
int i = int.Parse(s);//如果不能转换,将报错,要保证string可以转换为int (只支持string 转int);
Convert.ToInt32
int i = Convert.Toint(s);
该方法和 int.Parse类似,如果不能转换,将报错,支持 bool、 string、long、doubel、deciaml等类型转换为int;
int.TryParse
该方法与int.Parse类似,只支持string 转int,区别是更安全,不会有报错的危险,推荐使用该方法,其他类型也有TryParse方法,如 double.TryParse;
string s = "123";
int re = 0;
if (!int.TryParse(s, out re))
{
// 提示 字符串s不能转换为int类型
}
3、object 转 int
int type = default(int);
if (obj == null || !int.TryParse(obj.ToString(), out type))
{
// 提示异常,不能转换为int类型
return;
}
该方法的好处 是不用捕获异常,其他方法有 (int)obj ,Convert.ToInt32(obj) ,要用 try { }catch {} 捕获异常
(2) 方法
1、default(int)
给变量设置指定的默认值,值为0,default(string)默认值为空;
C#中的变量在未被赋值的情况下被使用的话会出现语法错误(提示错误 "使用了未赋值的局部变量"),因为C#有某种保护机制——不给变量赋值就不为其分配内存空间;建议如果值变量,在定义时没有确切的默认值时,使用default(Type);
2、int?(int可空类型)
int? 表示一个int类型,且该int类型可空,如果不加?的话,那么int类型的默认值为0,不能赋null值
例如: int aa = null; // 提示错误,无法将 Null 转换成“int”,因为它是一种不可以为 null 值的类型
该类型HasValue 判断是否为空,如果 HasValue 属性返回 True ,不为空;反之此变量的值为空,则返回 False;
注意:数据库中使用可空变量较多; 使用该变量的值时,应先判断HasValue;