永发信息网

简述变量分组的种类及应用条件?

答案:1  悬赏:30  手机版
解决时间 2022-01-01 05:02
简述变量分组的种类及应用条件?
最佳答案
C#的所有值类型均隐式派生自System.ValueType:
结构体:struct(直接派生于System.ValueType);
数值类型:
整 型:sbyte(System.SByte的别名),short(System.Int16),int(System.Int32),long (System.Int64),byte(System.Byte),ushort(System.UInt16),uint (System.UInt32),ulong(System.UInt64),char(System.Char);
浮点型:float(System.Single),double(System.Double);
用于财务计算的高精度decimal型:decimal(System.Decimal)。
bool型:bool(System.Boolean的别名);
用户定义的结构体(派生于System.ValueType)。
枚举:enum(派生于System.Enum);
可空类型(派生于System.Nullable泛型结构体,T?实际上是System.Nullable的别名)。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。例如:
int i = new int();
等价于:
Int32 i = new Int32();
等价于:
int i = 0;
等价于:
Int32 i = 0;
使用new运算符时,将调用特定类型的默认构造函数并对变量赋以默认值。在上例中,默认构造函数将值0赋给了i。MSDN上有完整的默认值表。
关于int和Int32的细节,在我的另一篇文章中有详细解释:《理解C#中的System.Int32和int》。
所有的值类型都是密封(seal)的,所以无法派生出新的值类型。
值得注意的是,System.ValueType直接派生于System.Object。即System.ValueType本身是一个类类型,而 不是值类型。其关键在于ValueType重写了Equals()方法,从而对值类型按照实例的值来比较,而不是引用地址来比较。
可以用Type.IsValueType属性来判断一个类型是否为值类型:

代码如下:

TestType testType = new TestType ();
if (testTypetype.GetType().IsValueType)
{
Console.WriteLine("{0} is value type.", testType.ToString());
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小洪疃村委会地址有知道的么?有点事想过去!
像什么一样的灰
南方有鸟焉,名曰蒙鸠。以羽为巢,而编之以发
万和热水器保修多长时间?
朝花夕拾 《阿长与山海经》阿长是一个怎样的
西张楼村委会地址有知道的么?有点事想过去!
单选题Thisriveris2kilometers________than
男生和女生相互约出去逛街看电影吃东西是不是
永康到徐州的k552车次14车厢32号是靠窗吗
单选题地球在不断地高速自转,转动的方向是自
手机看电影硬件解码和软件解码哪个对手机伤害
建杨庄村委会地址在什么地方?想过去办事
个人社保号是什么
小米手机升级程序时显示不成功,然后刷机了,
请问红米6pro怎么样我想买给家里的老人用?
推荐资讯
已知点P(a,a+2)是第二象限角平分线上的点
什么是劝导员
家里装修,客厅空调管道需提前安装,但是我空调
填空题函数y=xcosx-sinx,x∈(0,2π)单调
电子竞技与网吧的区别
阿丁美食怎么去啊,有知道地址的么
爱尚鱼鱼疗·养生馆澜沧店地址在什么地方,想
松竹新苑怎么去啊,有知道地址的么
桐木岗这个地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?