1,标识符(规则:开头只能时字母下划线@,其后可以为数字字母下划线,区分大小写;命名规则,PC每一个字母的首字母大写CC除了第一个单词的首字母外其他字母的首字母都大写UU所有字母都大写)
2,变量(变量的分类:成员变量(类成员变量),局部变量(语句块局部变量、方法体局部变量);变量的定义 类型 变量名【=初始值】如果没有初始值,如果是成员变量,如果是数值类型或者字符类型,默认为0;如果是引用类型默认为null;如果是布尔类型默认为false;如果是局部变量默认没有初始值;变量的作用域,类成员变量类类中;语句块局部变量在if或者for语句中,方法体局部变量方法内;同名变量的作用域:语句块的局部变量会覆盖类的成员变量,在方法体局部变量和语句块局部变量中不可能有相同的局部变量)
3,常量(使用关键字const,一般建议使用大写,在定义的时候必须初始化,随后其值不能改变)
4,数据类型
浮点数类型:F表示单精度浮点数;D表示双精度浮点数;decliam用于财务计算
1、C#对标识符有什么规定?
以字母、下划线、@开头;其后跟数字、字母或下划线;区分大小写
2、C#建议的几种命名约定?
三种;PC所有单词的首字母大写;CC除了第一个单词的首字母其他单词的首字母都要大写;UU所有单词都要大写
3、变量分为哪两种?其中函数的参数属于哪一种变量?
成员变量和局部变量;其中函数的参数属于局部变量
4、不给变量赋初始值,变量是否有值?
如果是局部变量,则没有默认的初始值;
如果是成员变量,其中如果成员变量是数值或字符类型,默认为0;如果是布尔类型,默认为false;如果是引用类型,默认为null
5、根据变量的作用域不同可以将变量分为哪三类?在不同作用域中可以使用同名的变量吗?如果可以怎么识别?
类成员变量、语句块局部变量、方法体局部变量
可以有
其中方法体局部变量会覆盖类成员变量,但是语句块局部变量和方法体局部变量不能相同
6、指出以下声明常量的错误:
conste double pi;
pi=3.1415;
pi=3.1416;
关键字const,常量在初始化的时候就要赋值;常量的值不能改变
7、值类型和引用类型有什么区别?各自包括哪些类型?
值类型:枚举类型、简单类型,结构类型 ;引用类型:数组类型、接口类型、类类型,委托类型
8、什么是装箱和拆箱?
将一个值类型转变为引用类型
将一个引用类型的对象转变为值类型
9、十六、八、二进制的整数常量分别使用什么前缀?
0x、0、0b
10、有哪两种浮点类型?哪一种是默认的?浮点型常量一般可以跟什么后缀字母?
float F/f double D/d 默认为double类型
11、浮点型和decimal类型在使用精度上、常量后缀上、采用进制上、位数上、性能开销上有什么区别?
浮点型常量后缀使用f和d,采用二进制表示,故有精度误差,
decimal常量后缀使用m,采用十进制表示,精度高,但性能开销大
12、字符常量有哪几种表示方法?
‘a’、‘\U0041’、(char)65、‘\x0041’
13、字符型与整型可以相互转换吗?可以
14、可空类型有哪两种表示方法?有哪几个常用的属性和方法?
T? (Nullable<T>)
可空类型有HasValue和Value两个只读属性和一个GetValueOrDeault方法
15、有哪两种字符串?有什么区别?
正则字符串(regular string)
包含在双引号中的零个或多个字符组成(如"hello"),并且可以包含简单转义序列(如表示制表符的\t)、十六进制转义序列和Unicode转义序列
原义字符串(verbatim string)
由@字符后跟开始的双引号字符、零个或多个字符以及结束的双引号字符组成。一个简单的示例就是 @"hello”
17、C#中根类型是哪个类型?string是引用类型?
object类,引用类型
18、以下语句有哪些错误?
var myfc(var a)
{
var aa;
aa=9;
var b=3.2;
int c=4;
b=c;
string d="ok";
b=d;
return b;
}
隐式类型(var)
var不能作为函数返回类型,不能作为函数参数类型;
使用var必须在声明时赋初始值;
使用var一旦赋值,中途不能修改为其他不能自动转换的类型。
20、什么是溢出检查?使用什么关键字?有什么作用?
使用关键字checked可以指定已检查的上下文;
这种不检查就不会报异常,
但是存在隐含错误。
一,标识符及其命名规则
标识符:
1,第一个字符必须是字母、下划线、@字符开头
2,其后可以跟字母、下划线、数字
3,标识符区分大小写
4,不能使用保留关键字作为标识符,但可以定义@加关键字的变量名
命名规则 :
(1)PascalCase:
在多个单词组成的名称中,每一个单词除了第一个字母大写外,其余的字母均小写
(2)camelCase:
在多个单词组成的名称中,每一个单词除了第一个字母大写外,其余字母都小写
(3)UPPERCASE:
名称中的所有字母都大写
二,变量
1,变量(variable)
表示存储位置,每一个变量必须具有一个类型
2,变量的分类
(1)成员变量(也叫做字段)
包括静态变量和非静态变量
(2)局部变量
在类成员方法中声明的变量,称为局部变量
包括值参数、引用参数、输出参数
3,变量的声明
使用前必须先声明: 变量类型 变量名1【=初始值】;
如果没有初始值,情况如下:
(1)成员变量(包括静态和非静态的成员变量)、数组元素,可以自动获取一个默认值
- 对于所有的整数类型(字符类型、枚举类型)和实数类型,其默认值为0
- 对于布尔类型,其默认值为false
- 对于引用类型,其默认值为null
(2)局部变量
如果不初始化,不会获得类型的默认值
4,变量的作用域
(1)类型成员变量
有效范围:类类型定义体内
(2)方法体局部变量
有效范围:方法体内
(3)语句块局部变量
有效范围:在语句块内,比如在if 或者for语句块内
注意:
(1)不同作用域中可以使用相同名字的变量,但内部的会屏蔽外部的
(2)在同名的方法体局部变量中,会屏蔽同名的类型成员变量
(3)但是:方法体局部变量不能与改方法内的语句块局部变量同名
三,常量
***常量的声明
使用关键字const,一般习惯大写,常量声明时必须初始化,指定其值后不能再对其赋值修改
const 变量类型 常量名
四,数据类型
1,值类型
(1)值类型的种类
简单类型、枚举类型、结构类型、可以为null的类型
(2)对一个变量操作不会影响另一个变量
2,引用类型
(1)引用类型的种类
类类型、接口类型、数组类型、委托类型
(2)对其中一个变量的操作可能影响另一个变量所引用的对象
3,装箱和拆箱
装箱:将一个值类型隐式或显示的转换成一个object类型
拆箱:将一个对象类型显示的转换成一个值类型
4,浮点类型
后缀加F,解释为单精度浮点类型(float)
后缀加D,解释为双精度浮点类型(double)
decimal数据类型一般支持用于财务计算,可以用较大的精确度来标识货币值
5,string数据类型
1,正则字符串
使用\输出标点符号
2,原义字符
使用@字符输出双引号中的原样内容
6,隐式类型(var)
(1)隐式类型不能赋值为null,不能进行类型转换
(2)var只能用于方法或属性中声明局部变量
(3)不能用来声明类型成员变量,不能用于返回值,参数值类型