C#难点逐个击破(6):C#数据类型与.net framework数据类型_C#教程

其中有《Java程序设计教程》是一个美籍华人的作品,还有Nicholas C.Zakes的《Javascript高级程序设计》,还有就是这本Illustrator C# 2008,中文译为“插图详解C#2008”,实际上插图不是很多。这是我第一次完整的读原版书,感慨良深。一是我的英文居然还可以,想当初考六级还差了20多分,–!!二是老外写书真的是用心在写,对待自己的书就像对待自己的孩子一样。

以上是闲话,之前一直很想知道.net framework数据存储类型在存储器中的存储方式,这本书以一种很浅显易懂的方式讲明白了。

C#中数据类型可分为简单类型与多值项类型;如short,int,long称为简单类型,它们只能存储某一个简单数据。多值项类型如array,它由简单类型数据组合,可以使用索引index遍历每个简单数据。

成员包括数据成员(Data members)和函数成员(Function members)。数据成员用于存储数据,函数成员用于执行代码。

C#中有15种预定义类型,其中13种简单类型(simple type),两种非简单类型(non-simple types);13种简单类型中其中包括11种数字类型、一种unicode字符类型(即char)、一种boolean类型(即bool);数字类型中又包括可变长度的整型、浮点类型(float和double)、高精确度decimal类型。两种非简单类型包括string、object。结构如下图(可点击看大图):

详细数据类型见:http://msdn.microsoft.com/zh-cn/library/exx3b86w%28VS.80%29.aspx

这里面值得注意的是C#中的数据类型都是小写方式,常使用的Int32、String是.net framework数据类型,.net framework是C#的超集。两者数据类型对应关系见下图(可点击看大图)

一般来说32767足够我们使用了,因此很多时间用Convert.ToInt16()吧。

时间: 2024-10-24 14:40:53

C#难点逐个击破(6):C#数据类型与.net framework数据类型_C#教程的相关文章

C#难点逐个击破(8):可空类型System.Nullable_C#教程

null与void null值用来表示数据类型未被赋予任何值,它是一种引用类型:void表示没有类型,或者说是没有任何值.null与void的区别可以认为void是根本没有,而null是一个空箱子,里面什么都没有. null值只能赋值给引用类型,这里注意到string也是一种引用类型:引用类型在C中称为"指针",即存放变量位置的内存空间位置.将变量设为null,会显式地设置引用,且它本身不指向任何内存位置: null值赋给值类型将导致编译错误. void用于方法值的返回,其本质并不是一

C#难点逐个击破(5):类的访问类型_C#教程

讲这四类之间的区别时有必要讲解一个概念:程序集.程序集(Assembly),可以简单理解为编译之后生成的.dll或.exe文件,相对于namespace是类库的逻辑组织形式,它可以称为程序类库的物理组织形式,msdn上描述"程序集包含描述它们自己的内部版本号和它们包含的所有数据和对象类型的详细信息的元数据".一般情况是一个程序集可以包含一个或者多个命名空间. Public:对其他任何类的任何方法都是可见的: Private:本类中定义的成员只有本类的方法才能访问; Protected:

C#难点逐个击破(4):main函数_C#教程

还记得读大学时初识计算机编程时的C语言,Main(){},那时还不明白入口函数是什么意思,只知道照抄书本上的示例,一行一行地跑printf看. 在C#中Main()属于主入口函数,我们知识C.C#属于编译语言,可以想象为一段程序最开始的头部部分,由Main()函数进入逐语句进行编译后执行.假如html页面也称作编程语言的话,那么它就属于从上到下一句一句(下载)执行:js也是由上到下执行,不过js相当诡异,变量作用域要特别对待:在asp.net中一般情况下是以Page_Load(object se

C#难点逐个击破(1):ref参数传递_C#教程

一般情况,方法的参数传递是通过值进行传递的,即一个对象作为参数传递给方法使用,该对象便进驻到该参数对象所在指针的内存空间(使用C来描述),也就是该对象在此位置创建了副本,当方法运行结束时,该副本将会被销毁:这种传递方式的使用占据了日常方法传参的绝大多数. 另一种情况是引用传递,它与值传递方式不同,对象传递给方法时对方法参数并没有影响,仍然返回的是受原始参数取值影响的方法,即MethodInstance(ref _refValue)调用 Method(ref _arg)方法,但_refValue对

C#难点逐个击破(3):params数组参数_C#教程

在方法声明中只允许一个paras关键字,并且该关键字只能为最后一个. 复制代码 代码如下: using System; /****************************** * Chapter:C#难点逐个击破(三) * Author:王洪剑 * Date:2010-1-16 * Blog:http://www.51obj.cn/ * Email:walkingp@126.com * Description:数组参数params的使用 * ***********************

c#-C#数据类型与.net framework数据类型 ?求解!

问题描述 C#数据类型与.net framework数据类型 ?求解! 刚学习C#,遇到这个问题: 看到这句描述 "C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中." 为什么"C#认可的基础数据类型并没有内置于C#语言中"?是不是说C#没有自己的基本数据类型呢? C语言就有内置基本数据类型,可是C++和C#和C语言不是兼容的吗?怎么连基本数据类型都不一样呢? "C#没有内置基本数据类型"这样的设计是为什么呢

C#难点逐个击破(9):类型转换_C#教程

显式转换与隐式转换 类型之间的转换可以分为隐式转换与显式转换,如int类型可直接转换为long类型. 复制代码 代码如下: /*隐式转换*/ int intNum = 23; long longNum1 = intNum; 也可进行显式转换: 复制代码 代码如下: /*显式转换*/ int intNum = 23; long longNum2 = (long)intNum; Parse 每个值类型都包含Parse()依法,它将字符串转换成对应的数值类型] 复制代码 代码如下: /*Parse转换

C#难点逐个击破(7):checked与unchecked_C#教程

C#默认情况下,若常数表达式的值超过了目标类型的最大值,将会导致编译错误. 若目标数据类型不能容纳非常数表达式的数据,那么数据在赋值时会被截断. 复制代码 代码如下: class Program { static void Main(string[] args) { int n = int.MaxValue;//n=2147483647 n = n + 1; System.Console.WriteLine(n); } } 此时可用内存存储数据来解释,之前int.MaxValue在内存为为32位

c++-c数据类型 如何转换为.net 数据类型

问题描述 c数据类型 如何转换为.net 数据类型 //服务器登录地址struct SERVADDR{ char* m_szSerIp[IPADDR_MAXLEN]; // 定义了一个数组, 里面存储的是char 类型的指针 unsigned short m_nPort;}; struct MULSERVADDR{ int m_nProxyType; //代理类型 char m_ucTimeOut; //如果为1就是需要用户验证 如果为0不需要用户验证 char m_szUserName[USE