值类型:
值类型都是struct(结构).
整型:整数类型的数据.如,-1,0,1;
在C#中所有的整型为:sbyte, 8位有符号的整数, -128~127(-2^7~2^7-1) 结构名:SByte
short, 16位有符号的整数, -32768~32767(-2^16~2^16-1) 结构名:Int16
int, 32位有符号的整数, -2147483648~2147483647(-2^31~2^31-1) 结构名:Int32
long, 64位有符号的整数, -2^63~2^63-1 结构名:Int64
byte, 8位无符号的整数, 0~2^8-1 结构名:Byte
ushort, 16位无符号的整数, 0~2^16-1 结构名:UInt16
uint, 32位无符号的整数, 0~2^32-1 结构名:UInt32
ulong, 64位无符号的整数, 0~2^64-1 结构名:UInt64
接下来用一个整型(sbyte)解释一下:
sbyte:C#关键字,
8位有符号的整数: 8位,共2的8次方个整数;
有符号,代表有正数也有负数, SByte: public struct SByte{……}
注意:所有的整型都是整数,只是 范围(整数的个数)和正负的区别.
使用sbyte的一些自带的方法,同时这些方法对 其他的 值类型 都同样适用:
sbyte by;//sbyte关键字来自 public struct SByte
bool isflag = sbyte.TryParse("2", out by);//把字符串"2"转成sbyte类型,赋值给by;转换成功,isflag为true;
//结果: isflag:true by:2
sbyte by2 = 4;
int i1 = by.CompareTo(by2);//by2和by比较大小,i1=by-by2,by2可以是object
//结果: i1 : -2
object ob1 = by2;
object ob2 = 4;
bool isflag2 = by.Equals(by2);//判断by与by2对象中的值是否相等,2比4
bool isflag3 = by2.Equals(ob1);//by2与ob1两个对象是否相等,比的是栈中的内容
//int a = by.GetHashCode();//哈希代码是一个用于在相等测试过程中标识对象的数值。它还可以作为一个集合中的对象的索引。
bool isflag4 = by2.Equals(ob2);//同上,当Equals()中的参数为object,比的就是 对象是否相同,而不是4和4
// 结果: isflag2: false isflag3: true isflag4: false
// 以上代码中:ob1对象栈中的内容等于by2栈中的内容,都是4,所以结果是true
// 以上代码中:ob2是引用类型,所以ob2中栈的内容是其值在堆里面的地址; by2栈中的内容是4; 所以结果是false
浮点类型的数据.如,-1.1,1.2;
在C#中所有的浮点型为:
float, 32 位单精度浮点型, -3.4 x 10^38 到 + 3.4 x 10^38
double, 64 位单精度浮点型, (+/-)5.0 x 10^-324 到 (+/-)1.7 x 10^308
上面整型的方法,在float也同样适用,同时也有一些是浮点型自己的方法:
float b1 = 1.77f;
bool is1 = float.IsInfinity(b1);//判断b1是否为正负无穷大
bool is2 = float.IsNaN(b1);//判断b1是否为数字,b1不是数字为true
//结果: is1:false is2:false
double h1 = 1.55;//同上
Decimal:
decimal d1 = 199.00099m;
Decimal d2 = new Decimal(b1);//float类型可这样转换成Decimal
decimal d3 = Decimal.Ceiling(d2);//大于或等于d2参数的最小整数值。请注意,此方法返回 System.Decimal,而不是整数类型。
decimal d4 = Decimal.Remainder(d1, d2); //获取d1除以d2的余数
decimal d5 = Decimal.Floor(d1); //取整数部分
decimal d6 = Decimal.FromOACurrency(256988888); //转换货币格式,四位一个逗号
decimal d7 = Decimal.Add(d1, d2); //加
decimal d9 = Decimal.Multiply(d1, d2); //乘
decimal d10 = Decimal.Divide(d1, d2); //除
int d11 = Decimal.ToInt32(d1); //同时内置转换多个方法
DateTime:
DateTime now1 = new DateTime(2018, 12, 12, 14, 05, 9, 555);//年月日时分秒毫秒,2018-12-12 14:05:9:555
DayOfWeek now2 = now1.DayOfWeek;//表示当前日期是星期几
int now3 = now1.DayOfYear;//该年中的第几天,表示为 1 和 366 之间的一个值。
int now4 = DateTime.DaysInMonth(2018, 5);//返回指定年和月中的天数。 结果:31
bool now5 = DateTime.IsLeapYear(2018);//返回指定的年份是否为闰年的指示。
DateTime now6 = now1.AddYears(2);//加上2年
bool idf; //默认为false
char c = 'u'; //内置判断当前字符是否为数字,字母等方法.
博客地址:http://blog.csdn.net/qq_28140365
版权声明:如果感觉文章哪里写的不对或者存在疑问,欢迎留言,共同学习、进步!
蓝色字体为链接