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"); 初始化類還可以帶參數(shù)嗎,比如('AAA"),這和StringBuilder c = new StringBuilder(); 有什么不一樣嗎?我總是不清楚這個語法,請解釋
5 回答

鴻蒙傳說
TA貢獻1865條經(jīng)驗 獲得超7個贊
初始化類可以帶參數(shù),只要建類時寫了含參構(gòu)造器就可以。
構(gòu)造器是用來創(chuàng)建類的實例時初始化實例的。
構(gòu)造器分默認和非默認的。默認的就是不含參的。
StringBuilder c = new StringBuilder("AAA"); 就是創(chuàng)建實例c時用帶參的構(gòu)造器,能這么使用不報錯,肯定是寫類時就寫了有一個參數(shù)的構(gòu)造器
StringBuilder c = new StringBuilder(); 使用默認構(gòu)造器初始化實例c

手掌心
TA貢獻1942條經(jīng)驗 獲得超3個贊
區(qū)分“==”和“Equals”的區(qū)別,
?Equals轉(zhuǎn)的定義:
返回對象中兩個值的比較。
而‘==’,實例化后兩個對象分別是c和d,很明顯兩個對象不相等,對象中的字符串相等所以得到:
Console.WriteLine(c==d); //false?Console.WriteLine(c.Equals(d));//true
如果還不明白,那就反匯編下看看吧:

慕桂英4014372
TA貢獻1871條經(jīng)驗 獲得超13個贊
現(xiàn)在需要大白話來把最復雜的東西用最簡單的方式表達出來,您,這位大俠,把簡單的東西用最復雜的方式表現(xiàn)出來了,讓人高山仰止

蕭十郎
TA貢獻1815條經(jīng)驗 獲得超13個贊
@hunpo:?這個問題c和d是實例化不同的兩個對象所以不相等,而Equals比較的是對象返回值是否相等。之所以寫那么多,為了讓你知其所以然。建議還是去園子搜索一片文章好好理解下,這樣知識就可以消化了不是?
- 5 回答
- 0 關(guān)注
- 475 瀏覽
添加回答
舉報
0/150
提交
取消