C#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用.
值类型包括简单值类型和复合型类型。简单值类型可以再细分为整数类型、字符类型、实数类型和布尔类型;而复合类型则是简单类型的复合,包括结构(struct)类型和枚举(enum)类型。
类型标识符 |
描述 |
可表示的数值范围 |
sbyte |
8位有符号整数 |
-128 ~ +127 |
byte |
8位无符号整数 |
0 ~ 255 |
short |
16位有符号整数 |
-32768 ~ +32767 |
ushort |
16位无符号整数 |
0 ~ 65535 |
int |
32位有符号整数 |
-2147483648 ~ +2147483647 |
uint |
32位无符号整数 |
0 ~ 232-1 |
long |
64位有符号整数 |
-9223372036854775805 ~ +9223372036854775807 |
ulong |
64位无符号整数 |
0 ~ 264-1 |
C#提供的字符类型数据按照国际上公认的标准,采用Unicode字符集。一个Unicode字符的长度为16位(bit),它可以用来表示世界上大部分语言种类。所有Unicode字符的集合构成字符类型。字符类型的类型标识符是char,因此也可称为char类型。
凡是在单引号中的一个字符,就是一个字符常数,如下所示:
‘a’、 ‘p’、 ‘*’、 ‘0’、‘8’
在表示一个字符常数时,单引号内的有效字符数量必须且只能是一个,并且不能是单引号或者反斜杠(\)。
为了表示单引号和反斜杠等特殊的字符常数,C#提供了转义符,在需要表示这些特殊常数的地方,可以使用这些转义符来替代字符。如下表所示。
例如Console.WriteLine(“Hello,”+”\’”+”打印出单引号“+”\‘“);
例: using System;
class StrDemo
{
static void Main( )
{
Console.WriteLine(“FirstLine\nSecondLine”);
Console.WriteLine(“A\tB\tC”);
Console.WriteLine(“D\tE\tF”);
struct person
{
string m_name;//姓名
int m_age; //年龄
string m_sex; //性别
}
enum Weekday
{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}
引用类型包括类(class)、接口(interface)、委托(delegate)和数组(array)。
object类是系统提供的基类型,是所有类型的基类,C#中所有的类型都直接或间接派生于对象类型。因此,对于任一个object变量,均可以赋以任何类型的值。
int a=8;
object obj1;
obj1=x;
object obj2='x';
对于object
类型的变量,声明必须使用object关键字。
一个字符串是被双引号包含的一系列字符。例如,“how are you!”就是一个字符串。
string类是专门用于对字符串进行操作的。
字符串在实际应用中非常广泛,字符串之间的运算也是非常方便的。如:
string str1="中国,"; string str2="你好!"; string str3=str1+str2; //这相当于str3="中国,你好!" char c=str3[0]; //取出str3的第一个字符,即“中”字。
如:
int[] array1 = new int[3]{2,3,5};
int[] array1 = {2,3,5};
对规则多维数组,调用Length属性所得的值为整个数组的长度;而调用其GetLength方法,参数为0时得到数组第1维的长度,为1时得到数组第2维的长度,以此类推。而对于不规则多维数组,调用Length属性和以0为参数调用其GetLength方法,得到的都是第一维的长度。