C#包含哪些数据类型,如何声明变量?
3个回答
展开全部
一、基础数据类型有哪些?
c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)
1、整型(包括:sbyte、short、int、long、byte、ushort、unit、ulong)
2、浮点类型(decimal)
3、decimal类型(decimal)
4、bool(布尔)类型(bool)
5、char字符类型(char)
6、引用类型(Object类型和字符串类型)(object、string)
二、如何声明变量和赋值?
1)定义变量的语法:
数据类型 变量名; (定义一个年龄的变量,年龄是整数,所以变量定义如下:)
int age; [系统会根据数据类型,在内存中分配不同大小的存储空间]
每个数据类型后面,可以定义多个变量,如:(定义姓名、家庭地址、籍贯、民族)
string name,address,origin,national ;
2)为变量赋值语法:
变量名 = 值;
展开全部
1.1 值类型
简单类型(Simple types )
结构类型(struct types)
枚举类型(Enumeration types)
1.1.1 简单类型
整型
布尔型
字符型 (整型的一种特殊情况)
浮点型
小数型
1.1.1.1 整型
C#中有9个整型。 sbyte 、byte、 short、 ushort、 int、 uint、 long、 ulong 和 char(单独一节讨论)。
1.1.1.2 布尔型
布尔数据类型有true和false两个布尔值。可以赋于true或false值给一个布尔变量,或可以赋于一个表达式,其所求出的值等于两者之一:
1.1.1.3 字符型
字符型为一个单Unicode 字符。一个Unicode字符16位长,它可以用来表示世界上多种语言。可以按以下方法给一个字符变量赋值:
char chSomeChar = 'A';
除此之外,可以通过十六进制转义符(前缀\x)或Unicode表示法给变量赋值(前缀\u):
char chSomeChar = '\x0065';
char chSomeChar = '\u0065';
不存在把char转换成其它数据类型的隐式转换。这就意味着,在C#中把一个字符变量当作另外的整数数据类型看待是行不通的——这是C程序员必须改变习惯的另一个方面。但是,可以运用显式转换:
char chSomeChar = (char)65;
int nSomeInt = (int)'A';
4.1 转义符( Escape Sequences)
转义符 字符名
\' 单引号
\" 双引号
\\ 反斜杠
\0 空字符
\a 感叹号(Alert )
\b 退格
\f 换页
\n 新行
\r 回车
\t 水平 tab
\v 垂直tab
1.1.1.4 浮点型
两种数据类型被当作浮点型:float和double。它们的差别在于取值范围和精度:
float: 取值范围在 1.5x10^-45~ 3.4x10^38之间, 精度为7位数。
double: 取值范围在 5.0x10^-324 ~ 1.7x10^308之间, 精度为 15~16 位数。
当用两种浮点型执行运算时,可以产生以下的值:
正零和负零
正无穷和负无穷
非数字值(Not-a-Number,缩写NaN)
非零值的有限数集
另一个运算规则为,当表达式中的一个值是浮点型时,所有其它的类型都要被转换成浮点型才能执行运算。
1.1.1.5 小数型(The decimal Type)
小数型是一种高精度、128位数据类型,它打算用于金融和货币的计算。它所表示的范围从大约1.0x10^-28 到 7.9x10^28,具有28至29位有效数字。要注意,精度是以位数 (digits)而不是以小数位(decimal places)表示。运算准确到28个小数位的最大值。
正如你所看到的,它的取值范围比double的还窄,但它更精确。因此,没有decimal和double之间的隐式转换——往一个方向转换可能会溢出,往另外一个方向可能会丢失精度。你不得不运用显式转换。
当定义一个变量并赋值给它时,使用 m 后缀以表明它是一个小数型:
decimal decMyValue = 1.0m;
如果省略了m,在变量被赋值之前,它将被编译器认作double型。
1.1.2 结构类型
一个结构类型可以声明构造函数、常数、字段、方法、属性、索引、操作符和嵌套类型。尽管列出来的功能看起来象一个成熟的类,但在C#中,结构和类的区别在于结构是一个值类型,而类是一个引用类型。与C++相比,这里可以用结构关键字定义一个类。
使用结构的主要思想是用于创建小型的对象,如Point和FileInfo等等。你可以节省内存,因为没有如类对象所需的那样有额外的引用产生。例如,当声明含有成千上万个对象的数组时,这会引起极大的差异。
1.1.3 枚举类型
当你想声明一个由一指定常量集合组成的独特类型时,枚举类型正是你要寻觅的。最简单的形式,它看起来可能象这样:
enum MonthNames { January, February, March, April };
因我惯用缺省设置,故枚举元素是int型,且第一个元素为0值。每一个连续的元素按1递增。如果你想给第一个元素直接赋值,可以如下把它设成1:
enum MonthNames { January=1, February, March, April };
如果你想赋任意值给每个元素——甚至相同的值——这也没有问题:
enum MonthNames { January=31, February=28, March=31, April=30 };
最后的选择是不同于int的数据类型。可以在一条语句中按如此赋值:
enum MonthNames : byte { January=31, February=28, March=31, April=30 };
你可以使用的类型仅限于long、int、short和byte。
1.2 引用类型
和值类型相比,引用类型不存储它们所代表的实际数据,但它们存储实际数据的引用。在C#中提供以下引用类型给你使用:
对象类型
类类 型
接口
代表元
字符串类型
数组
1.2.1 对象类型
对象类型是所有类型之母——它是其它类型最根本的基类。因为它是所有对象的基类,所以可把任何类型的值赋给它。例如,一个整型:
object theObj = 123;
给所有的C++程序员一个警告:object并不等价于你可能正在寻找的void*。无论如何,忘掉指针总是个好主意。
当一个值类型被加框(作为一个对象利用)时,对象类型就被使用了。这一章稍后会讨论到加框和消框
1.2.2 类类型
一个类类型可以包含数据成员、函数成员和嵌套类型。数据成员是常量、字段和事件。函数成员包括方法、属性、索引、操作符、构造函数和析构函数。类和结构的功能是非常相似的,但正如前面所述,结构是值类型而类是引用类型。
希望对你有帮助。
简单类型(Simple types )
结构类型(struct types)
枚举类型(Enumeration types)
1.1.1 简单类型
整型
布尔型
字符型 (整型的一种特殊情况)
浮点型
小数型
1.1.1.1 整型
C#中有9个整型。 sbyte 、byte、 short、 ushort、 int、 uint、 long、 ulong 和 char(单独一节讨论)。
1.1.1.2 布尔型
布尔数据类型有true和false两个布尔值。可以赋于true或false值给一个布尔变量,或可以赋于一个表达式,其所求出的值等于两者之一:
1.1.1.3 字符型
字符型为一个单Unicode 字符。一个Unicode字符16位长,它可以用来表示世界上多种语言。可以按以下方法给一个字符变量赋值:
char chSomeChar = 'A';
除此之外,可以通过十六进制转义符(前缀\x)或Unicode表示法给变量赋值(前缀\u):
char chSomeChar = '\x0065';
char chSomeChar = '\u0065';
不存在把char转换成其它数据类型的隐式转换。这就意味着,在C#中把一个字符变量当作另外的整数数据类型看待是行不通的——这是C程序员必须改变习惯的另一个方面。但是,可以运用显式转换:
char chSomeChar = (char)65;
int nSomeInt = (int)'A';
4.1 转义符( Escape Sequences)
转义符 字符名
\' 单引号
\" 双引号
\\ 反斜杠
\0 空字符
\a 感叹号(Alert )
\b 退格
\f 换页
\n 新行
\r 回车
\t 水平 tab
\v 垂直tab
1.1.1.4 浮点型
两种数据类型被当作浮点型:float和double。它们的差别在于取值范围和精度:
float: 取值范围在 1.5x10^-45~ 3.4x10^38之间, 精度为7位数。
double: 取值范围在 5.0x10^-324 ~ 1.7x10^308之间, 精度为 15~16 位数。
当用两种浮点型执行运算时,可以产生以下的值:
正零和负零
正无穷和负无穷
非数字值(Not-a-Number,缩写NaN)
非零值的有限数集
另一个运算规则为,当表达式中的一个值是浮点型时,所有其它的类型都要被转换成浮点型才能执行运算。
1.1.1.5 小数型(The decimal Type)
小数型是一种高精度、128位数据类型,它打算用于金融和货币的计算。它所表示的范围从大约1.0x10^-28 到 7.9x10^28,具有28至29位有效数字。要注意,精度是以位数 (digits)而不是以小数位(decimal places)表示。运算准确到28个小数位的最大值。
正如你所看到的,它的取值范围比double的还窄,但它更精确。因此,没有decimal和double之间的隐式转换——往一个方向转换可能会溢出,往另外一个方向可能会丢失精度。你不得不运用显式转换。
当定义一个变量并赋值给它时,使用 m 后缀以表明它是一个小数型:
decimal decMyValue = 1.0m;
如果省略了m,在变量被赋值之前,它将被编译器认作double型。
1.1.2 结构类型
一个结构类型可以声明构造函数、常数、字段、方法、属性、索引、操作符和嵌套类型。尽管列出来的功能看起来象一个成熟的类,但在C#中,结构和类的区别在于结构是一个值类型,而类是一个引用类型。与C++相比,这里可以用结构关键字定义一个类。
使用结构的主要思想是用于创建小型的对象,如Point和FileInfo等等。你可以节省内存,因为没有如类对象所需的那样有额外的引用产生。例如,当声明含有成千上万个对象的数组时,这会引起极大的差异。
1.1.3 枚举类型
当你想声明一个由一指定常量集合组成的独特类型时,枚举类型正是你要寻觅的。最简单的形式,它看起来可能象这样:
enum MonthNames { January, February, March, April };
因我惯用缺省设置,故枚举元素是int型,且第一个元素为0值。每一个连续的元素按1递增。如果你想给第一个元素直接赋值,可以如下把它设成1:
enum MonthNames { January=1, February, March, April };
如果你想赋任意值给每个元素——甚至相同的值——这也没有问题:
enum MonthNames { January=31, February=28, March=31, April=30 };
最后的选择是不同于int的数据类型。可以在一条语句中按如此赋值:
enum MonthNames : byte { January=31, February=28, March=31, April=30 };
你可以使用的类型仅限于long、int、short和byte。
1.2 引用类型
和值类型相比,引用类型不存储它们所代表的实际数据,但它们存储实际数据的引用。在C#中提供以下引用类型给你使用:
对象类型
类类 型
接口
代表元
字符串类型
数组
1.2.1 对象类型
对象类型是所有类型之母——它是其它类型最根本的基类。因为它是所有对象的基类,所以可把任何类型的值赋给它。例如,一个整型:
object theObj = 123;
给所有的C++程序员一个警告:object并不等价于你可能正在寻找的void*。无论如何,忘掉指针总是个好主意。
当一个值类型被加框(作为一个对象利用)时,对象类型就被使用了。这一章稍后会讨论到加框和消框
1.2.2 类类型
一个类类型可以包含数据成员、函数成员和嵌套类型。数据成员是常量、字段和事件。函数成员包括方法、属性、索引、操作符、构造函数和析构函数。类和结构的功能是非常相似的,但正如前面所述,结构是值类型而类是引用类型。
希望对你有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据类型简单的数据类型;结构类型;引用类型;
(一) 简单的数据类型包含: 1.整形 short int long byte sbyte ...... 2.布尔型: true fals ;
3.字符型:char 4:实数型: float double Decimal(十进制);
(二) 结构类型 : 结构,枚举;
(三) 引用类型:类, 接口,代理(Delegate) ,数组;
(一) 简单的数据类型包含: 1.整形 short int long byte sbyte ...... 2.布尔型: true fals ;
3.字符型:char 4:实数型: float double Decimal(十进制);
(二) 结构类型 : 结构,枚举;
(三) 引用类型:类, 接口,代理(Delegate) ,数组;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询