.net课堂流水账
上午:
1、 回顾昨天。netframework 两次编译一次运行 和 注释三块儿最为重要
2、 静态类直接点出来即可,不用new创建,静态下的所有成员必须是静态的
静态的成员是属于类的,非静态成员是属于对象的
例如console类就是一个静态类
3、 参数列表是指所有参数的总和
同名方法参数列表不同,就可以引起方法的重载
4、 面对没见过的返回值时,直接采用其返回值类型的参数来接收;回车键包含回车跟换行,对应asc码为13和10
5、 Console。Read:如果缓冲区里面没有值,则停下等你输入,可以输出4中的回车键
只读一个,并且转换为asc码返回
Readline:输什么返回什么
Readkey:输入之后不用按回车直接返回,其中还有几个属性和方法,输出各个属性之后都有不同;
Console类的方法见课件上
6、 学习分析的思路
7、 Int。parse()括号中间的;必须是字符串才能顺利转换为整形变量
8、 上课经典程序sound,password,特别注意读取按键,以及用枚举设置色彩
9、 从控制台下输入的数据都是字符串类型
下午:
1、 强弱类型,c#中有自定义和内置两种
记忆short和int范围
注意某些非默认类型定义时,数值后面还需要加字母,例如float=1.2f
2、 匈牙利命名法,帕斯卡命名法,驼峰命名法,下划线命名法
3、 简单类型(不包含string类型,string类型为引用类型,但string类型比较变态,用起来跟值类型一样),枚举,结构类型之外的类型都是引用类型
且这些类型本质上都是结构体,换句话说,值类型为结构体
所有的引用类型本质上都是类
赋值时的线程堆栈和托管堆(见课件)
引用类型赋值时,会释放原先的内存空间,重新分配空间,所以原来的值就变了
String类型赋值时,不释放原来的内存空间(特殊的引用类型)
注意:new有两个功能:第一,分配内存空间;第二,将引用类型变量和分配好的内存空间建立关系
即:值类型赋值与引用类型赋值(用new)上的区别,要注意
引用类型赋null时,托管堆里面没有分配内存,线程堆栈里面有变量,所以没有联系指针
值类型一般不能赋null,要赋值的话,需要在类型后面加问号“?”
4、 对象的数据不同,行为(即方法,所以微软将方法放到类中)相同,对象不保存方法
5、var只能在方法中声明,知道类型的话,最好写上类型,增加可读性
var和弱类型的区别?
(1)弱类型语言在编译的同时执行,没有两次编译,一次执行这一说,根本没有生成exe文件
(2)在内存中,弱类型分配的空间不管那一种类型都一样;而强类型,即使是var形式,也只是系统判断出类型后,分配不同大小的空间
6、匿名类型
7、装箱有三步,相比new,多了第二步:将值再赋给内存空间,比较费劲,所以一般不用
拆箱不太费劲儿
用泛型避免装箱(其实就是用相应的类型)
8、大部分值类型都可以用。Parse方法将字符串转换为相应的值类型
只能是字符串类型转换为其它类型,而convert则比较强悍
转换时,结果必须符合相应类型的应有格式,才能转换
注意tryparse判断按键是否是数字,若为数字,则赋给给相应的变量(sound程序中有例子)
9、!(非)只能对bool类型
10、动态类型:减少代码量
与var不同的是,可以放方法外部
重点是数值类型,分清值类型,引用类型
11、双层循环要跳出第一次循环,可以加一个标记