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; //正确
显示类型转换例子:
- double x = 12.5d; int i = (int )(x+1); //结果为13
- float m = 12.56f; string s = m.ToString(); //结果为s = "12.56"
- string s = "10";
int i = int.Parse(s); //结果为i = 10
这些就是一些关于数据类型的内容,这里就不做详细介绍了,毕竟这方面的资料还是很多的。
以上部分都是个人见解,若有出入,请予指出!