在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.类就是数据和加工数据的方法的封装 2.对几个概念的描述: a)字段:用于保持一个值的成员变量 b)方法;加工对象的数据的真正代码 c)属性:是字段的真正方法 d)常量:就是不能改变其值的字段 e)索引器:是个智能的数组,索引器可以让对象通过”get“和”set”存取器来被索引 f)事件:就是导致一些代码运行的东西 g)操作符:通过操作符重载可以将标准数学运算符添加到类中,以便通过这些操作符编写出更直接的代码 3.访问限定符:指定一个给定成员对于它所在的类之外的代码是可见的还是不可见的 a)public任何地方都可以访问 b)private为默认情况下的访问修饰符,只允许派生类访问 c)protected在类定义外都不可访问,即使是派生类都不可访问 d)internal只在当前编译单元可见,可与public和protected配合使用 4.在C#中选择哪个地方来定义Main不会影响到编译的顺序,如果在一个类中定义了多个Main入口,在编译时需要指定其优先的Main 5.想C#这样面向对象语言最大的好处就是您可以定义一个特殊的方法,无论何时创建类的实例时,总可以调用这些方法,这样的方法就是“构造方法“。 6.在C#中类的构造函数与类同名,构造函数不会返回任何值。 7.实例化一个对象:类名 对象名 = new 类名() 8.如果是C++程序员的话,实例化对象有两个方法 a)在堆栈上声明:类名 myClass; b)在自由存储区(堆)上声明:同C#一样 9.类的成员可以分为静态成员和实例成员,默认情况下,每个成员都被视为实例成员;静态成员是在载入包含类的应用程序时创建的,在应用程序的整个生命周期中都存在。 10.“base(…)”的初始化函数允许调用当前类的基类的构造函数,而“this(…)”的初始化函数允许当前类调用它内部定义的另一个函数 11.重载方法就是两个以上具有相同名称,但参数列表不同的方法 12.在定义常量时,应该记住三个方面: a)常量的值是在编译时设定的 b)常量成员的值必须是数值文字 c)在默认状况下常量成员是静态的 13.使用关键字“readonly”定义一个字段时,你可以在构造函数中设置该字段的值 14.基于组件最重要的的属性之一就是在组件终止之后能够进行资源清除和释放,在C++中清除是很直截了当的,因为清除是在析构函数中完成的,在。NET环境中,对象的清除是由。NET垃圾收集器来自动处理的。 15.下面是一些对象在不需要使用是需要立即释放的资源: a)内存:释放对象的内存,将内存快速返还到池中以便使用 b)窗口句柄: c)数据库连接:并发的数据库连接很频繁地发生,可用的连接数量可能会变得很有限,因此即时将不用的连接返回到池中是很重要的 d)文件:由于给定文件只有单个实例而很多操作又要求独占操作,因此在文件不需要时关闭文件句柄是很重要的 16.垃圾收集机制: a)引用计算收集:有时候难以收集循环的对象 b)跟踪收集:循环不在成问题,更大的优点就是分配引用就是一个简单的移动操作,付出的代价就是引用不在使用时,无法立即终止代码 17.VisualStdio.Net的目标之一就是多线程编程,还有一个目标就是去掉COM多线程模型的复杂性 18.在做测试时,带有GC(垃圾收集机制)的程序运行速度比单线程引用版本要快2倍,比带有锁定前缀的引用计算版本的程序快4倍 19.将引用计算方法和跟踪GC想结合起来,这样收集垃圾对象机制更完善,但是对内存管理的代价太大了 20.在C++和COM中是显视的管理内存,而在。NET环境中完全是靠GC处理,不用程序员控制 21.在实现多接口时,你选定要实现的接口要列在该类的基类的后面,在C#中实现所谓的多继承的唯一方式就是使用接口 22.如果你希望确保某个类永远也不用做基类时,在定义该类时就应该使用限定符”sealed”,定义封装类的唯一限制就是抽象类不能被定义为封装类,因为抽象类天身就是被用做基类使用的,因此封装类不会有派生类的出现 |
请发表评论