C#基础

1.“==”  和 equles()的区别

值类型:==和equles 都是判断值是否相等。

引用类型 ==和equles 都是判断引用地址是否相等。

string 类型特殊。==判断引用地址是否相等。equles 判断值是否相等。

2.潜复制和深复制

潜复制:值类型是值复制。引用类型是地址复制。
深复制:值类型是值复制。引用类型是遍历元素进行值复制,如果元素是引用类型,就递归调用。

3.类和结构体的区别

类是引用类型。结构体是值类型。

类可以继承,被继承,结构体不可以继承和被继承

但是类和结构体都可以实现接口。

4.接口和抽象类的区别

接口和抽象类的语法基本相同,都不可以实例化。

但是1.接口中不可以有方法的实现,但是抽象类中可以有实现。

抽象类只能被单继承,接口可以被多继承。

5.派生类的构造函数和基类构造函数的运行。

先运行基类构造函数,再运行派生类构造函数。

6.static ,readonly,const。

static 是静态变量。需要开辟内存空间。存储在静态变量区(堆上),在任何地方,都是对同一个内存进行操作。

readonly 是只读变量。需要开辟内存空间。除了变量初始化,或构造函数中,整个程序运行过程不允许修改。

const常量。不需要开辟内存空间。类似于占位符。

原文地址:https://www.cnblogs.com/gfbppy/p/10477715.html