为了账号安全,请及时绑定邮箱和手机立即绑定

C#的一个简单语句的理解问题

C#的一个简单语句的理解问题

达令说 2018-12-07 06:07:39
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
查看完整回答
反对 回复 2018-12-09
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

一个是初始化的是有“aaa” 另一个就是为空
查看完整回答
反对 回复 2018-12-09
?
手掌心

TA贡献1942条经验 获得超3个赞

区分“==”和“Equals”的区别,  Equals转的定义: 返回对象中两个值的比较。 而‘==’,实例化后两个对象分别是c和d,很明显两个对象不相等,对象中的字符串相等所以得到: Console.WriteLine(c==d); //false Console.WriteLine(c.Equals(d));//true 如果还不明白,那就反汇编下看看吧:
查看完整回答
反对 回复 2018-12-09
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

现在需要大白话来把最复杂的东西用最简单的方式表达出来,您,这位大侠,把简单的东西用最复杂的方式表现出来了,让人高山仰止
查看完整回答
反对 回复 2018-12-09
?
萧十郎

TA贡献1815条经验 获得超12个赞

@hunpo: 这个问题c和d是实例化不同的两个对象所以不相等,而Equals比较的是对象返回值是否相等。之所以写那么多,为了让你知其所以然。建议还是去园子搜索一片文章好好理解下,这样知识就可以消化了不是?
查看完整回答
反对 回复 2018-12-09
  • 5 回答
  • 0 关注
  • 422 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信