C#初学记(二)

  上次第一次发文不小心发到了首页,不小心被管理员撤了下来。这次记得了。

  上一篇呢认识了第一个控制台程序,接着就说说C#的一些基本语法。

一、数据类型

1、

  变量可以分为两种类型:值类型和引用类型。值类型可以分为整数类型、布尔类型、字符类型、实数型、结构类型、枚举类型。引用类型包括类类型、接口类型、委托类型。

  值类型系统会为其开辟相应的内存,每个变量都是相互独立的。引用类型的变量又称为对象,可存储对实际数据的引用,类似于C++的指针,对一个引用类型的修改可能会影响到另外的变量,因为它们指向相同的内存空间,如object:根类型,CTS(通用类型系统)中的其他类型都由它派生,字符串类型string。

整数类型:

sbyte           有符号8位整数  (相当于c++的char)
byte            无符号8位整数  (相当于c++的unsigned char)
short           有符号16位整数 
ushort         无符号16位整数 
Int              有符号32位整数 
uint             无符号32位整数 
long            有符号64位整数 
ulong          无符号64位整数

字符类型:

C#的char表示一个unicode字符,存储的是0~65535之间的整数,也就是16位的,这是跟c++不同的,C++是八位。

实数类型:

float           32位单精度实数

double        64位双精度实数

demcimal    128位十进制实数

布尔(bool)类型
取值ture或者false,占4个字节,即32位存储空间。

  还有其它的一些类型这里就不详细说了,但是需要注意的是struct和class这两种类型。struct是值类型而class是引用类型。C#中还有一个interface接口是C++没有的,跟java的接口其实是一样的。

2、

  常量部分,常量的声明使用const,声明时就要初始化,不能用变量值来初始化常量,切记。

3、数据类型转换

  我们通过例子来说明:

装箱例子:

int i = 10;

object obj1 = i;       //隐式装箱

object obj2 = (object)i;    //显示装箱

if( obj is int )    //要判断一个原始类型是否是某个给定的原子类型,用is运算符

{

  Console.WriteLine("OK");        //输出结果:OK

}

Console.WriteLine(obj.GetType());   //输出结果:System.Int32  要返回一个类型的字符串,用object类得GetType()方法。

  值类型int转化成引用类型obj1和obj2,这就是装箱。

拆箱例子:

int i = 10;

object obj = i;       //隐式装箱

int j = (int) obj;    //拆箱,需要确保得到的之变量有足够的空间存储拆箱值中的所有字节。

隐式类型转换例子:

byte x = 12;

byte y = 25;

byte m = x + y;   //错误,x+y的结果应该是较大的数据类型,隐式转换必须从小转到大。

int n = x + y;      //正确

显示类型转换例子:

  1. double x = 12.5d;                                                                                                                                                           int i = (int )(x+1);    //结果为13
  2. float m = 12.56f;                                                                                                                                                        string s = m.ToString();    //结果为s = "12.56"
  3. string s = "10";

   int i = int.Parse(s);     //结果为i = 10

  这些就是一些关于数据类型的内容,这里就不做详细介绍了,毕竟这方面的资料还是很多的。

  以上部分都是个人见解,若有出入,请予指出!

posted @ 2011-03-20 01:33  绿夜  阅读(2000)  评论(3编辑  收藏  举报