1:.net框架的两个主要部分:
.NET Framework 类库(FCL) 和 公共语言运行时(CLR)
2:变量名的命名规则:
1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。
3:C#程序运行原理:
4:代码举例说明if和switch选择结构
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
如果都是false,就执行语句体n+1。
注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
switch语句的格式解释
(基本数据类型,只要能提升为int的都可以,引用数据类型中的枚举(jdk1.5)和string(jdk1.7))
执行流程
先计算表达式的值
然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
总结switch语句和if语句的各自使用场景
switch建议判断固定值的时候用
if建议判断区间或范围的时候用
*用switch能做的,用if都能做,单反过来则不行
5:代码举例说明for,while,do-while,foreach四种循环结构
for循环
for((int i = 1; i <= (需要循环的次数);i++){
循环体;
}
while循环
while(true){
循环体;
}
while先判断再循环
do-while循环
do{
循环体;
}while(条件判断语句) ;
do-while先循环一遍再判断
foreach循环
foreach($数组 as $k=>$v){
}
k 为 数 组 的 键 名 , k为数组的键名, k为数组的键名,v是属于的值
foreach循环可以遍历数组、List、Set中的元素
6:四种访问修饰符,并写出访问范围。
public 公有访问。不受任何限制。
private 私有访问。只限于本类成员访问,子类,实例都不能访问。
protected 保护访问。只限于本类和子类访问,实例不能访问。
internal 内部访问。只限于本项目内访问,其他不能访问。
7:数据类型有哪两种?并写代码举例和画图说明区别。
值类型和引用类型
值类型
int i=1;
int w;
w=i;
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20190711111043823.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dTNzc3Nw==,size_16,color_FFFFFF,t_70)
值类型变量声明后,不管是否已经赋值,编译器为其分配内存。
引用类型
Circle a;
a=newCircle (42);
Circle b;
b=a;
当使用 new 创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中。
相同点
引用类型可以实现接口,值类型当中的结构体也可以实现接口;
引用类型和值类型都继承自System.Object类。
不同点
1)范围方面
C#的值类型包括:结构体(数值类型、bool型、用户定义的结构体),枚举,可空类型。
C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。
2)内存分配方面
数组的元素不管是引用类型还是值类型,都存储在托管堆上。
引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。简称引用类型部署在托管推上。而值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实 例)存储;作为局部变量时,存储在栈上。(栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放)
8:方法的命名规范。
驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法;
9:数组的命名规范。
1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。