课时 4 : No.4 模拟面试题
C#
1. 请说明字符串中
string str = null
string str = “”
string str = string.Empty
三者的区别
第一个未作初始化没有值,
第二个为空字符串,
答案:
str = null 在堆中没有分配内存地址
str = "" 和 string.Empty 一样都是在堆内存中分配了空间,里面存储的是空字符串
而string.Empty是一个静态只读变量
2. C#重载运算符,重载 == 和 != 以及万物之父Object基类中的虚方法 virtual bool Equals(Object obj)
对于我们的意义是什么?
==比较值类型的时候比较地址是否相同,Equals用于比较具体的内容是否相同;
可以重载运算符使得 == 与 Equal 有同样效果。
答案:
为了判断两个对象的非引用地址相等
我们可以选择 使用 重载运算符 == 和 != 或者
重写Equals方法,来自定义判断两个对象是否相等
如果想保留原有的引用地址相等判断,那么一般我们选择重写Equals方法