学习:https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/classes-and-objects
操作上的问题:抄写的List代码没法再cmd上编译,而在vs上可执行。问qq群,有人说要用misbuild命令,看了下,最后发现misbuild工具windows开始菜单vs2015/vs工具中,打开,反应很慢。不过可以编译了。比VS快
1.类可以包含的成员中的常量(与类相关联的常量值),字段(类的常量),属性(与读取和写入类的已命名属性相关联的操作)这三个概念现在分不清。新的概念有索引器,事件,运算符,终结器。
2.泛型遇到的困难。
关于这段代码还真没理解出TFirst 等 和 int 这两个类型之间的关系。泛型带来的类型检查是怎么检查的。这里的知识可能的关键字是构造类型泛型,我太急了,能用C#写点小东西后继续看泛型。
2.继承犯了个错,派生类调用积累的构造时,冒号打成了分号,空白添加了分号。继承 :
3.就字段而言实例,静态字段好理解,这里readonly替代了final,readonly修饰的字段要么申明时赋值,要么在该类的构造中赋值。发现const关键字,搜索,原来const就是java中的常量,编译器就更替为值,readonly是动态,更像final。
属性和字段的区别:http://www.cnblogs.com/gdouzz/p/6889163.html;属性不指明存储位置,属性包含get set访问器,可分为只读,只写,读写属性。get访问器里要包含有和属性类型一致的返回值的无参方法,set访问器里要包含一个名为value的参数, 属性也和字段一样可以分为静态和实例,属性的访问器介意是虚的,如果属性被virtual abstract override修饰,这些修饰符将适用于其访问器。
4.方法:这儿的方法签名定义值得一记:包含方法名称、类型参数数量及其参数数量、修饰符和类型。
5.参数:值参数、引用参数、输出参数、参数数组。http://www.cnblogs.com/caofangsheng/p/4852370.html
这里又介绍了可选参数的写法:http://www.cnblogs.com/gdouzz/p/6889163.html
c#传参在语言上就分开引用和值的传递。引用ref,out只能传递变量,且方法必须对out参数赋值。数组params放在最后一个参数,只能放一元数组。
6.C#对要使用的局部变量进行赋值检查,return语句将控制权返回给调用方。
7.虚方法,重写方法和抽象方法。http://www.cnblogs.com/yanyao/p/4830768.html
virtual,abstract,override.C#多态的实现必须依赖override关键字,override又依赖基类的方法有这3个修饰词之一。先查找申明类有无virtual关键字,无调,有检查实现类有无override,无就逐级检查实现类的基类有无overrride。
8.方法重载的描述中强调了 重载的方法具有唯一的方法签名。编译器的重载决策查找与自变量最匹配的方法。
9.c#的构造函数被分为了实例构造函数和静态构造函数,所谓静态函数就是加载类时初始化要调用的方法。实例构造函数可以重载,并能包含可选参数。实例构造函数不能被继承,若没有,则默认无参实例构造函数。
10.写的List文件,感觉得到意思,但很多语法都懵逼。好好学习,天天向上。把自己当小学生。
11.索引器:将对象编入索引,名称格式为后跟分隔符[],其中写入参数列表。索引器也可以为虚的,也分为只读。。。。。;索引器可以被重载。
12.事件,懵逼,非要梳理感觉就是一串代码,定义有event关键字,数据类型必须为委托,特别方便扩展代码,和外部代码有力结合,
13.运算符,没见识到c++的运算符重载,也感谢c#让我看了运算符重载。public static 声明 + 返回值类型 +operator + "被重载的运算符,允许一元,二元,转换"+ (根据运算符是几元运算符配其操作数为参数列表)
14.终结器和using语句:终结器有gc自动调用,原文有“可以在任意线程执行终结器”---这句话是说gc在的线程不是独立的?;using语句后括号里的对象必须实现IDisposable接口,其本质是try -finallyhttp://www.cnblogs.com/xiaobiexi/p/6179127.html;析构函数:http://www.jb51.net/article/78942.htm