background image

Q:您在什么情况下会用到虚方法(虚函数)?

虚函数为了指明某个成员函数具有多态性,用关键字 virtual 来标志其为虚函
数。

既然虚函数为多态而生,那么简单的说当我们在 C#中要想实现多态的方法之
一就是使用到虚函数。

 

Q:Override 与重载有什么区别?

1.
父类:public virtual string ToString(){return "a";}
子类:public override string ToString(){return "b";}

2.
同一类中或父子关系类中皆可:

public string ToString(){return "a";}

public string ToString(int id){return id.ToString();}

override 是用于重写基类的虚方法,这样在派生类中提供一个新的方法;

重载是提供了一种机制, 相同函数名通过不同的返回值类型以及参数来表来区
分的机制;

 

Q:值类型与引用类型有什么区别?

NET 将数据类型分为值类型(value type)和引用类型(reference 
type
) 

一个具有值类型(简单类型、结构类型、枚举类型)的数据存放在

内的

一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表
数据本身。

值类型的数据具有较快的存取速度

一个具有引用类型(类、代表、数组、接口)的数据并不驻留在栈中,而
是存储于

中。即是在堆中分配内存空间,不直接存储所包含的值,而是指

向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的
数据时,需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。

用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度

Q:怎样理解静态变量?

静态变量(static)是相对自动变量(auto)等而言的,一旦声明为静态变量,在编译时
刻开始永远存在,不受作用域范围约束,但是如果是局部静态变量,则此静态变量