[学习笔记]Asp.net(C#)菜鸟进级系列之值类型
2006-04-25 01:25
561 查看
C#中数据类型包括Value Type(值类型)和Reference Type(引用类型),除此之外还有用在非安全代码中的Pointer Type(指针类型)。
值类型的变量直接包括它们的数据。
引用类型的变量则仅仅是储存它们对数据的引用。可以使用引用对象让两个对象同时指向一个对象,然后操作其中的一个对象,则令一个对象也同步操作。而值对象则不能,值对象则是把对象的副本copy到该对象的存储区。
C#中的对象
Value Type:
bool,char,byte,sbyte,short,ushort,int,uint,long,ulong,float,double,decimal,enum,struct
Reference Type
class,delegate,interface,object,string
说明:c#中常用来表示的数据对象名(如上面所示),其实都是一种简单类型,每一个简单类型都对应相应的dotnet系统类型,它只不过是其相对应系统类型的别名(一种更方便的简单表示而已)。
下面是常用的简单类型及其对应的系统类型。
简单类型与系统类型对应 bool----------System.Boolen char----------System.Char
byte----------System.Byte sbyte----------System.Sbyte
short----------System.Int16 ushort----------System.Uint16
int----------System.Int32 uint----------System.Uint32
long----------System.Int64 ulong----------System.Uint64
float----------System.Single double----------System.Double
decial----------System.Decimal
一、值类型
结构:
结构类型
数字类型
整数类型
浮点数类型
小数类型
布尔类型
枚举类型
说明:在使用时一定要注意类型的匹配,特别是在作为函数方法的参数时更是要严格匹配参数类型,即使可隐式转换,也要强制转换。
结构类型相关细节:
1、bool类型不能转换成其他类型(这与其它编程语言还是有区别的,不能和0.1转换)
2、char类型是用来声明双字节的Unicode字符,在c#中可以用多种形式表示char类型(字符字面值,十六进制转义序列,Unicode或整数值强制赋值)
如:
char mychar='x';//字符字面值
char mychar='\x0058';//十六进制表示
char mychar='\u0058';//unicode
char mychar=(char)88;//整数强制转换
3、byte、ubyte、short、ushort都可以直接用整数字面值赋值。赋值时自动检测是否匹配,不匹配则thorw Exeception,赋值时不能用表达式赋值(因为运算表达式只有在执行时才有计算结果,编译器不能检查出计算出的结果是否超出了要赋予的数据类型)。
如:
short a=5;
short b=34;
short c=a+b;//error
short d=(short)(a+b);//right
注:整数字面值如果没有后缀来明确指出其类型时,它将默认按照顺序从int,uint,long,ulong中挑选出第一个和它类型能够匹配的数据类型作为其类型。如果加上后缀,则:加l或L,可能是long或ulong。加u或U,可能是uint或ulong。加ul,Ul,UL,uL,则为ulong类型。
4、浮点数据类型(float,double)
声明浮点数必须加后缀(f或F)来初始化,如:float myfloat=3.33f。因为实数字面值(所在表达式中出现的浮点数)默认是double,如不加后缀,则可能会引起精度降低或范围溢.。
double类型的后缀是d或D 。
5、小数类型(decimal)
后缀是m或M。
说明:所有的整数类型都可以隐式转换成decimal,而因为浮点数类型和decimal类型所表达的精度不同,所以要强制转换。
6 、数据长度
其实c#中的数字类型中的数据类型基本上都可以从其系统类型明可以看出。如:short的系统类型为System.Int16,说明它是16位(双字节)的。其它的就是byte是8位单字节的(0~255)。float用32位(4个字节)来存储浮点数,它也称为单精度浮点数,它的精度是7个有效数字。double是64位,以15~16个有效数字。小说类型decimal是128位,有28~29个有效数字,它主要用于金融和货币领域。
枚举类型相关细节:
1、enmu类型
枚举类型是一组命名常量集合,每一种枚举类型都有一种基本的类型,除char外所有的整数类型都可以作为枚举类型的基本类型。
格式:[attributes][modifiers]enum identifier [:base-type]{enumeator-list,……}
注:base-type的默认类型是int
2、struct类型
它包括构造函数、常数、域、方法、属性、索引、操作符和嵌套类型。
格式:[attributes] [modifiers] struct identifier [:interface] {……}
struct类型适合于表示轻量级的对象。效率相对较高。
值类型的变量直接包括它们的数据。
引用类型的变量则仅仅是储存它们对数据的引用。可以使用引用对象让两个对象同时指向一个对象,然后操作其中的一个对象,则令一个对象也同步操作。而值对象则不能,值对象则是把对象的副本copy到该对象的存储区。
C#中的对象
Value Type:
bool,char,byte,sbyte,short,ushort,int,uint,long,ulong,float,double,decimal,enum,struct
Reference Type
class,delegate,interface,object,string
说明:c#中常用来表示的数据对象名(如上面所示),其实都是一种简单类型,每一个简单类型都对应相应的dotnet系统类型,它只不过是其相对应系统类型的别名(一种更方便的简单表示而已)。
下面是常用的简单类型及其对应的系统类型。
简单类型与系统类型对应 bool----------System.Boolen char----------System.Char
byte----------System.Byte sbyte----------System.Sbyte
short----------System.Int16 ushort----------System.Uint16
int----------System.Int32 uint----------System.Uint32
long----------System.Int64 ulong----------System.Uint64
float----------System.Single double----------System.Double
decial----------System.Decimal
一、值类型
结构:
结构类型
数字类型
整数类型
浮点数类型
小数类型
布尔类型
枚举类型
说明:在使用时一定要注意类型的匹配,特别是在作为函数方法的参数时更是要严格匹配参数类型,即使可隐式转换,也要强制转换。
结构类型相关细节:
1、bool类型不能转换成其他类型(这与其它编程语言还是有区别的,不能和0.1转换)
2、char类型是用来声明双字节的Unicode字符,在c#中可以用多种形式表示char类型(字符字面值,十六进制转义序列,Unicode或整数值强制赋值)
如:
char mychar='x';//字符字面值
char mychar='\x0058';//十六进制表示
char mychar='\u0058';//unicode
char mychar=(char)88;//整数强制转换
3、byte、ubyte、short、ushort都可以直接用整数字面值赋值。赋值时自动检测是否匹配,不匹配则thorw Exeception,赋值时不能用表达式赋值(因为运算表达式只有在执行时才有计算结果,编译器不能检查出计算出的结果是否超出了要赋予的数据类型)。
如:
short a=5;
short b=34;
short c=a+b;//error
short d=(short)(a+b);//right
注:整数字面值如果没有后缀来明确指出其类型时,它将默认按照顺序从int,uint,long,ulong中挑选出第一个和它类型能够匹配的数据类型作为其类型。如果加上后缀,则:加l或L,可能是long或ulong。加u或U,可能是uint或ulong。加ul,Ul,UL,uL,则为ulong类型。
4、浮点数据类型(float,double)
声明浮点数必须加后缀(f或F)来初始化,如:float myfloat=3.33f。因为实数字面值(所在表达式中出现的浮点数)默认是double,如不加后缀,则可能会引起精度降低或范围溢.。
double类型的后缀是d或D 。
5、小数类型(decimal)
后缀是m或M。
说明:所有的整数类型都可以隐式转换成decimal,而因为浮点数类型和decimal类型所表达的精度不同,所以要强制转换。
6 、数据长度
其实c#中的数字类型中的数据类型基本上都可以从其系统类型明可以看出。如:short的系统类型为System.Int16,说明它是16位(双字节)的。其它的就是byte是8位单字节的(0~255)。float用32位(4个字节)来存储浮点数,它也称为单精度浮点数,它的精度是7个有效数字。double是64位,以15~16个有效数字。小说类型decimal是128位,有28~29个有效数字,它主要用于金融和货币领域。
枚举类型相关细节:
1、enmu类型
枚举类型是一组命名常量集合,每一种枚举类型都有一种基本的类型,除char外所有的整数类型都可以作为枚举类型的基本类型。
格式:[attributes][modifiers]enum identifier [:base-type]{enumeator-list,……}
注:base-type的默认类型是int
2、struct类型
它包括构造函数、常数、域、方法、属性、索引、操作符和嵌套类型。
格式:[attributes] [modifiers] struct identifier [:interface] {……}
struct类型适合于表示轻量级的对象。效率相对较高。
相关文章推荐
- [学习笔记]Asp.net(C#)菜鸟进级系列之引用类型
- [学习笔记]Asp.net(C#)菜鸟进级系列之流程控制
- [ASP.NET学习笔记之二十六]C#的异常处理
- C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
- ASP.NET Core 2.0系列学习笔记-ORM框架之Dapper
- Asp.Net--DropDownList与DataTable数据绑定的方法(C#)[学习笔记]
- ASP.NET MVC 3 学习笔记系列之Music Store(4)
- 黑马程序员之ASP.NET学习笔记:.NET,ASP.NET,C#,VisualStudio之间的关系是什么?
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
- 【原创】Asp.net MVC学习笔记之-基于类型来绑定Model的属性
- 《Pro ASP.NET MVC 3 Framework》学习笔记之六【C#部分特性】
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- ASP.NET Core 2.0系列学习笔记-应用程序修改默认端口支持外网IP访问
- Asp.Net Ajax 学习笔记10 JavaScript的原生类型以及Microsoft AJAX Library的相关扩展(下)
- ASP.NET MVC 3 学习笔记系列之Music Store(2)
- ASP.NET MVC 3 学习笔记系列之Music Store(3)
- ASP.NET MVC 3 学习笔记系列之Music Store(1)
- .NET/Dot Net学习笔记---.net理解,C#.net的基本类型,字符串转义字符处理..
- Asp.Net Ajax 学习笔记9 JavaScript的原生类型以及Microsoft AJAX Library的相关扩展(上)
- ASP.NET Core 2.0系列学习笔记-启动类Startup