static void Main(string[] args) { StringBuilder c = new StringBuilder("AAA"); StringBuilder d = new StringBuilder("AAA"); Console.WriteLine(c==d); //false Console.WriteLine(c.Equals(d));//true }语句里,
StringBuilder c = new StringBuilder("AAA"); 初始化类还可以带参数吗,比如('AAA"),这和StringBuilder c = new StringBuilder(); 有什么不一样吗?我总是不清楚这个语法,请解释
5 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
初始化类可以带参数,只要建类时写了含参构造器就可以。
构造器是用来创建类的实例时初始化实例的。
构造器分默认和非默认的。默认的就是不含参的。
StringBuilder c = new StringBuilder("AAA"); 就是创建实例c时用带参的构造器,能这么使用不报错,肯定是写类时就写了有一个参数的构造器
StringBuilder c = new StringBuilder(); 使用默认构造器初始化实例c
手掌心
TA贡献1942条经验 获得超3个赞
区分“==”和“Equals”的区别,
Equals转的定义:
返回对象中两个值的比较。
而‘==’,实例化后两个对象分别是c和d,很明显两个对象不相等,对象中的字符串相等所以得到:
Console.WriteLine(c==d); //false Console.WriteLine(c.Equals(d));//true
如果还不明白,那就反汇编下看看吧:
萧十郎
TA贡献1815条经验 获得超13个赞
@hunpo: 这个问题c和d是实例化不同的两个对象所以不相等,而Equals比较的是对象返回值是否相等。之所以写那么多,为了让你知其所以然。建议还是去园子搜索一片文章好好理解下,这样知识就可以消化了不是?
- 5 回答
- 0 关注
- 453 浏览
添加回答
举报
0/150
提交
取消