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 關注
- 483 瀏覽
添加回答
舉報
0/150
提交
取消