(二)预定义数据类型

一.值类型和引用类型

1.值类型和引用类型的区别

(1)值类型直接存储值,引用类型存储对值得引用

(2)值类型存储在堆栈中,引用类型存储在托管堆上

2、如果变量是一个引用,则可以把其值设置为null,表示它不引用任何对象

3、在C#中,基本类型如bool和long都是值类型。相反,大多数更复杂的C#数据类型,包括我们自己声明的类都是引用类型。

4.如果需要把自己的类型定义为值类型,就应该把它声明为一个结构。

二.CTS类型

C#认可的基本预定义类型并不是内置在C#语言中的,而是内置于.NET Framework中。

三.预定义的值类型

1.整型

名称 CTS类型 说明 范围
sbyte System.SByte 8位有符号的整数 -128~127(-2的8次方~2的7次方-1)
short System.Int16 16位有符号的整数 -32768~32767(-2的15次方~2的15次方-1)
int System.Int32 32位有符号的整数 -2417483648~2147483647(-2的31次方~2的31次方-1)
long System.Int64 64位有符号的整数 -9223372036854775808~9223372036854775807(-2的63次方~2的63次方-1)
byte System.Byte 8位无符号的整数 0~255(0~2的8次方-1)
ushort System.UInt16 16位无符号的整数 0~65535(0~2的16次方-1)
uint System.UInt32 32位无符号的整数 0-4294967295(0~2的32次方-1)
ulong System.UInt64 64位无符号的整数 0~18446744073709551615(0~2的64次方-1)

所有整数类型的变量都能被赋予十进制或十六进制的值,后者需要加0x前缀.

1 long x=0x12ab

2.浮点类型

名称 CTS类型 说明 位数 范围(大致)
float System.Single 32位单精度浮点数 7 +-1.5 x 10的245次方~+-3.4 x 10的38次方
doble System.Double 64位双精度浮点数 15/16 +-5.0 x 10的-324次方~+-1.7 x 10的308次方

3.decimal类型

名称 CTS类型 说明 位数 范围(大致)
decimal System.Decimal 128位高精度十进制数表示法 28 +-1.0 x 10的-28次方~+-7.9 x 10的28次方

4.bool类型

名称 CTS类型 说明 位数
bool System.Boolean 表示true或者false NA teue或false

5.字符类型

名称 CTS类型
char System.Char 表示一个16位的Unicode字符

char类型的字面量是用单引号括起来的,如‘A‘.如果把字符放在双引号中,编译器会把它看成字符串,从而产生错误。

常见转义符

转义序列 字符
\‘ 单引号
\" 双引号
\\ 反斜杠
\0
\a 警告
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符

6 预定义的引用类型

名称 CTS类型 说明
object System.Object 根类型,CTS中的其他类型都是从它派生而来的(包括值类型)
string System.String Unicode字符串
时间: 2024-10-07 23:26:43

(二)预定义数据类型的相关文章

Visual Studio 2012 预定义数据类型

预定义数据类型 一.值类型 整型:(整数) 有符号整型和无符号整形,区别是有符号的有负数无符号的都是正数, 2x+1 常用int 有符号:              带有正负数,范围为按所写依次增大 Sbyte   -128到127    有符号8位整数 short    -32,768 到 32,767    有符号16位整数 int     -2,147,483,648 到 2,147,483,647     有符号 32 位整数 long   -9,223,372,036,854,775,

2.3预定义数据类型

C#数据类型包括 值类型:存储其值,存储在堆栈中. 引用类型:存储对值的引用,存储在托管堆上 CTS值类型包括:整型和浮点型.字符类型和布尔型. 预定义的引用类型包括:object和string. 注意:string每次修改或者赋值都会分配新的空间,string 是不可变类型.

C#变量,常量,预定义数据类型、名称控空间之基础点

1.变量的初始化:在使用变量之前需要对变量进行初始化 1>类中或者结构中的字段,在未进行显示初始化时,变量的默认值是0; 2>方法中的变量必须显示初始化才能正确的调用,举例说明引用类型的初始化:Something objSomething;此时变量仅仅创建了引用,这个引用未指向任何对象,无法调用该变量:     objSomething=new Something();使用new 关键字将该引用指向存储在堆上的一个对象 2.var关键字的类型推断 1>变量必须初始化,2>初始化器不

预定义数据类型

C#中把数据类型分为2种: 1. 值类型 - 存储在堆栈中,直接存储其值. 2. 引用类型 - 存储在托管堆上,存储对值得引用. 这种存储位置的不同会有不同的影响: 1 //例如:下面的语句会在内存的两个地方存储值20. 2 //i和j都是int类型 3 i = 20; 4 j = i; 1 //假定有一个类Human,已经定义了字段age. 2 Human x, y; 3 x = new Human(); 4 x.age = 30; 5 y = x; 6 Console.WriteLine(y

【第一篇】SAP ABAP7.50新语法之预定义数据结构

前言部分 先说一下,之前有些文章被转载之后也没有注明,这个就比较不好.如果你觉得本文写的并不好,那么可以直接去看HELP,这样更直接,我这里只是做记录,如果读者朋友感兴趣,可以关注公众号,也可以在本文末留言,毕竟谁都不会那么厉害,什么内容都会,总会有说错或者不会的. ABAP关键字 ABAP关键字是ABAP语言的词汇表. ABAP语句根据定义的语法规则由ABAP里的关键字,操作数和运算符组成. ABAP关键字取自英语,分为ABAP语言元素和表示语句语义的ABAP语言元素添加.除字母外,ABAP关

.NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式

开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,.Net基类库针对实际开发中最常用的情形提供了几个预定义好的委托,这些委托可以直接使用,无需再重头定义一个自己的委托类型.预定义委托在.Net基类库中使用的比较广泛,比如在Lambda表达式和并行计算中都大量地使用,需要我们予以关注起来! /* 新语法索引 */ 1.自动属性 Auto-Impleme

C++预定义字符函数

利用 get 成员函数可读取文件中的一切字符,包括空白字符.文件结尾.用 >> 读取文件,会自动忽略空白字符(空格.换行符.制表符) C++ 预定义的字符函数(均在 cctype 库中定义):toupper(Char_type) 返回 Char_type 的大写形式tolower(Char_type) 返回 Char_type 的小写形式isupper(Char_type) 若 Char_type 为大写,则返回真islower(Char_type) 若 Char_type 为小写,则返回真i

php02~预定义变量

预定义变量 1.作用域问题 php中,自定义变量的作用域有两种:全局作用域(函数外),局部作用域(函数内) 但是: 预定义作用域成为"超全局作用域":即全局作用域+局部作用域的总和. 2:数据类型问题: 一般来说超全局作用域都是数组! 综述: 3.预定义作用域一般包括: $_GET,$_POST,$_SERVER,$_REQUEST,$GLOBALS..... (二)举例说明 $_GET变量 get,一般出现在form表单中:<form action = "abc.ph

PHP魔术函数、魔术常量、预定义常量

一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用:若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时,若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个