當(dāng)前位置:首頁 > IT技術(shù) > Windows編程 > 正文

C# 如何重寫ToString函數(shù)及重寫的意義
2021-09-23 17:42:02

轉(zhuǎn)載:?https://blog.csdn.net/BillCYJ/article/details/90519331

?

?

眾所周知,C#的每一個類和結(jié)構(gòu)都隱式繼承自System.Object,而Object提供了ToString()虛方法,所以任何類的對象都有ToString()方法,該方法可以將對象轉(zhuǎn)化為字符串類型(也可理解為:將數(shù)值或其它類型對象轉(zhuǎn)換為字符串類型),該方法為虛方法,可以重寫。
舉例1:int32類型重寫了ToString(),將整數(shù)用字符串進(jìn)行表示。

int temp = 123;
Console.WriteLine(temp.ToString());
// 輸出:123
1
2
3
那么,我們自定義的類如何重寫ToString()呢?
舉例2:

namespace Test
{
class Person
{
public string name;
public int Height { get; set; }

public override string ToString()
{
return "Person: " + name + " " + Height;
}
}
}


// 在Main函數(shù)里使用重寫后的ToString()
Person p= new Person { name = "jump", Height = 180 };
Console.WriteLine(p); // 等價(jià)于Console.WriteLine(p.ToString());
// 輸出:Person: jump 180

?

?

?


重寫ToString()虛方法的意義:
如果不重寫ToString(),那就只輸出了當(dāng)前對象所在命名空間及類名,比如:例2如果不重寫ToString(),輸出就是Test.Person;
如果重寫ToString(),那就可以輸出我們想要的內(nèi)容,這樣可以讓輸出的結(jié)果更直觀更便于觀察或測試。

總結(jié):重寫ToString()并沒有多高大上,不過如此,如果我們需要輸出這個對象的一些信息用于觀察或測試,那就直接重寫ToString()。

Object類的虛方法ToString()能被重寫且有意義,那么同樣屬于Object類的虛方法Equals()、GetHashCode()也能被重寫且有意義。

?

?

?

?


————————————————
版權(quán)聲明:本文為CSDN博主「Real_JumpChen」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/BillCYJ/article/details/90519331

?

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務(wù)立即開通 >