学习笔记 03----C# 类型

【类型】

支持2种类型

【数据类型】包括一些简单类型(例如,char、int和float),枚举类型和结构类型。

【引用类型】包括类类型、接口类型、代表(delegate)类型和数组类型。

数据类型和引用类型的区别在于,数据类型变量直接包含它们的数据,然而引用类型数据是存储对于对象的引用。

对于引用类型,有可能两个变量引用相同的对象,因而可能出现对一个变量的操作影响到其它变量所引用对象的情况。

对于数据类型,每个变量都有它们自己对数据的拷贝,所以不太可能因为对一个进行操作而影响到其它变量。

【预定义类型】

      预定义引用类型是对象和字符串。类型对象是所有其它类型的最根本的基础类型,而类型字符串要用来说明Unicode字符串数据。 

      预定义数据类型包括有符号和无符号整数类型、浮点数类型、二进制、字符和十进制类型。有符号整数类型有sbyte、short、int和long;无符号整数类型有byte、ushort、uint和ulong;而浮点类型有float和double。

预定义的类型及赋值:

类型 

描述

例子

object

所有其它类型的最根本的基础类型

object o = null;

string

字符串类型;一个字符传是一个Unicode字符序列

string s = "Hello";

sbyte

8-bit 有符号整数类型

sbyte val = 12;

short

16-bit有符号整数类型

short val = 12;

int

32-bit 有符号整数类型

int val = 12;

long

64-bit有符号整数类型

long val1 = 12;
long val2 = 34L;

byte

8-bit 无符号整数类型

byte val1 = 12;
byte val2 = 34U;

ushort

16-bit无符号整数类型

ushort val1 = 12;
ushort val2 = 34U;

uint

32-bit无符号整数类型

uint val1 = 12;
uint val2 = 34U;

ulong

64-bit无符号整数类型

ulong val1 = 12;
ulong val2 = 34U;
ulong val3 = 56L;
ulong val4 = 78UL;

float

单精度浮点数类型

float val = 1.23F;

double

双精度浮点数类型

double val1 = 1.23;
double val2 = 4.56D;

bool

二进制类型; 一个二进制数据不是真就是假

bool val1 = true;
bool val2 = false;

char

字符类型; 一个字符数据是一个Unicode字符

char val = 'h';

decimal

精确十进制类型,有28个有效位

decimal val = 1.23M;

预定义类型可以允许操作符重载它们自己。例如,比较符==和!=对应不同的预定义类型有不同的语意:

  • 如果两个int类型的表达式代表了相同的整数据,它们被认为是相等的。
  • 如果两个object类型的表达式都指向相同的对象或者都是空的,它们被认为是相等的。
  • 如果字符串实例有相同的长度并且在每个字符的位置都相同,或者都为空,这两个字符串类型的表达式就被认为是相等的。

例子

class Test
{
static void Main() {
     string s = "Test";
     string t = string.Copy(s);
     Console.WriteLine(s == t);
     Console.WriteLine((object)s == (object)t);
}
}

产生下面的输出

True
False

因为第一个比较符比较两个string类型的表达式,而第二个比较符比较两个object类型的表达式。

posted @ 2011-03-13 11:30  start from program  阅读(202)  评论(0编辑  收藏  举报