C#复习中...

CIL: Common Intermediate Language 公共中间语言
CLR: Common Language Runtime
公共语言运行库
Creation of New Types is the
essence(核心)of OOP.

Type(类型) is defined by class and object(对象) is the instance(实例) of class.

赋值语句: 值域大的变量 = 值域小的变量;
占位符
foreach循环
Three pillars(3大支柱) of OOP
Encapsulation(封装)
Polymorphism(多态)
Inheritance(继承)

declare optional arguments e.g int foo(int a double b=6.5){ ... }
Constructor:No return type
Declared as Public
accept arguments
Using Static Members: static
You access a static member through the name of the class/object in which it is declared.
The members of a class can be either instance members or static members.
Static methods don’t have a this reference.
Static method can not access a non-static member variable.

ref and out(按引用传参)
out 可以对未赋初值的参数进行赋值
Overloading(重载) Methods & Constructors
使用同一个“方法名”提供不同功能。
Overloading vs Overriding
Overloading is when you have multiple methods in the same scope, with the same name but different signatures
Overloading (Compile Time Polymorphism):: Functions with same name and different parameters
Overriding is a principle that allows you to change the functionality of a method in a child class.
Overriding (Run Time Polymorphism):
Functions in the extended class with same name and same parameters as
in the base class, but with different behaviors.

ncapsulating(封装) Data with Properties(属性)

Properties{get ; set ;}
override :
public class ListBox : Control
{
public new virtual void Sort() {...}
Use new to indicate that it is not an override of the base method in Control class.

public class ListBox : Control
{
public override void Sort() {...}
Use override to indicate that it does want to override of the base method in Control class.

e.g

class A {
public virtual void Movie() {
Console.WriteLine("MikiMouse");
}
}
class B : A {
public override void Movie () {
Console.WriteLine("DisneyMovie");
}
}
class C : B {
public new virtual void Movie () {
Console.WriteLine("Snow White");
}
}
class D : C {
public override void Movie () {
Console.WriteLine("Seven Dwarfs ");
}
}
class TestMe{
static void Main() {

A objA = new D();

A objB = new B();

C objC = new D();

A objD = new A();

objA.Movie();

objB.Movie ();

objC.Movie ();

objD.Movie();
}
}

Abstract Classes
To require subclasses to implement a method of their base, you need to designate that method as abstract.

Once you declare a method to be abstract, you prohibit the creation of any instances of that class.

Sealed 类(完全不允许派生), 防止偶然继承。与Abstract类(用来派生)正相反。
C# insists that the both of logical operator pairs should be overloaded. Otherwise , It generates a Compile Error.

等于操作符(==)重载(overload)时,同时也应该覆盖 (Override) Object提供的虚方法Equals(),
让它也采用重载的(==)进行操作。当然(!=)也要重载。
关于类型转换,当我们将小范围值转换为大范围值或者是转换会使数的精度有损失的时候需要显式转换
implicit 隐式 explicit 显式
Interfaces vs Abstract Classes
一个类/接口可以继承一个类 一个类/接口可以继承多个接口
当继承自抽象类时,选择性的override函数,当继承自接口时,必须实现所有函数
注意:接口中的所有函数只需要写签名,且不能用access-modifie

时间: 2024-08-24 18:31:27

C#复习中...的相关文章

.NET IO 复习中的误区

#region 读取大文件的文本 使用streamReader using (StreamReader sr = new StreamReader(ofd.FileName, Encoding.Default)) { string txt = null; while ((txt = sr.ReadLine()) != null) { this.textBox2.Text += txt+"\r\n"; } } #endregion 一开始想解决每行读取的文本"\r\n"

二级Python复习中的复数注意事项

前言 尽管全国二级Python整体上难度不大,但是要求却非常细致,与二级VFP.Access.二级C和C++等非常相似,因为这毕竟是软件开发的基础要求,而且考生如果将来致力到软件开发的话,还将有很远的路子要走,所以,二级的这种"非常细致"的要求,从这一点上讲,并不过分.既然是国家二级,既然是一种统考考试,肯定存在很大的规律性可循.但是,教材的细致性与熟练性是每一位考生都不能马虎的. 关于复数 关于复数,在教材第三章<基本数据类型>中,作为数字类型的一个子类出现,所占篇幅仅有

如何学习离散数学和在计算机科学中应用

引言 离散数学的定义及其在各学科领域的重要作用.离散数学(Discrete mathematics)是研究离散量的结构及其相互关系的数学学科,是现代数学的一个重要分支.它在各学科领域,特别在计算机科学与技术领域有着广泛的应用,同时离散数学也是计算机专业的许多专业课程,如程序设计语言.数据结构.操作系统.编译技术.人工智能.数据库.算法设计与分析.理论计算机科学基础等必不可少的先行课程.通过离散数学的学习,不但可以掌握处理离散结构的描述工具和方法,为后续课程的学习创造条件,而且可以提高抽象思维和严

【软考路上】——总结篇——软考收获+复习建议

无论你现在正在学习什么知识,不要认为它不重要,因为在你今后的某个时刻一定会用上. 这句话,软考给了我很明确的验证.软考复习过程中,很多知识点都是在自考和自己的专业课中学习过的的.软考中的考点大致如下: 还记得琛琛在动员大会上为大家做的考点分析,分析到最后,原来这些知识点大部分都是我们学过的啊~~ 从考试的角度来说,结合自己经历的分享一点小建议: 1.J2SE学习:有人说软考阶段,J2SE学习不重要,如果这么想的话那就大错特错了,学习J2SE并不仅仅是学习java中那几个关键字,更主要的是更深.更

数据库复习10——PL/SQL

数据库复习 CH10 PL/SQL 10.1 PL/SQL简介 PL/SQL是Oracle对SQL的过程化的扩展,PL/SQL可以实现SQL相关的过程化程序,并且能够以存储过程和函数的方式让一段SQL业务逻辑驻留在SQL服务器中,以便减少客户机计算任务并减少网络I/O 10.2 PL/SQL编程基础 (1)简介 PL/SQL编程框架为: DECLARE <Variable List> BEGIN <Extented SQL Execution> EXCEPTION <Exce

C++primer(第四版)复习笔记—第一篇:基本语言

再次阅读primer一方面是为了查漏补缺,另一方面也是更加深入的理解C++的思想精髓.在此记录复习中记录的各知识细节及理解,以便后续温故之用. 第一张:快速入门 1. for语句: for(初始化语句:条件测试语句:条件修改表达式){ 语句体 } .执行顺序:初始化语句在最开始执行一次,然后执行条件测试语句,若成立则执行语句体:然后再执行条件修改表达式,再执行条件测试语句,成立则继续,反之则退出for语句. 2. if else语句缩进: if(0==i){ cout<<"i==0&

朴素贝叶斯方法在乳腺肿块检测中的应用

写在开头: 临近毕业准备找工作,而机器学习方法是复习中不可缺少的一个重要部分,所以本篇博文是将之前做过的一个项目里面应用的机器学习方法——朴素贝叶斯方法,重点复习一遍.具体文章如下引用所示. Zhang S, Chen Z, Gu S, et al. Breast tumor detection in double views mammography based on Simple Bias[C]. Medical Imaging Physics and Engineering (ICMIPE)

最近的看法

到北京也有一段时间了,也适应了这个紧张而忙碌的节奏,由刚开始上班感觉脖子很痛到现在已经没有感觉了,不知道是好事与否?总之是适应了. 到了现在我工作的公司,当面对大量需要实际去操作的繁琐的工作时,才深感光有全面的理论和见解是远远不够的,还得需要很强的动手能力,经过一个多月加班加点的努力尝试,感觉进步了不少,但我还不敢掉以轻心,仍需加把劲去练习.熟练. 恰好今天是年度高考的日子,当初我也是在昼夜紧张的复习中通过高考走进自己所选的学院的,虽多人都批自己所在学院,但我感觉还是学习了不少东西,最起码有了一

关于JAVA 向上转型

最近复习中比较绕的一个地方 通过试验总结一下 若A为父类 B为子类 声明方式为: A t= new B(); 将子类对象赋值给父类对象,它编译时为父类对象,但运行时却是子类对象: 1)被声明为父类对象: 2)拥有父类属性,调用父类中非子类覆盖的方法: 3)占用子类的内存空间: 4)无法访问子类中特有的变量和方法: 5)子类覆盖父类的方法时,调用子类的方法. 1 class Subtest extends Test{ 2 int x,y; 3 public void printHello(){ 4