一個類的對象能輸出嗎
如 class CBANK
CBANK ac;
Console.WriteLine(ac);
我在一本書C#上看到有這樣的程序 能輸出也可以理解 讓我詫異的是輸出的結果成員變量沒有輸出而是輸出一個成員方法的返回值,這是為什么
實例化對象的時候不是只對成員變量申請空間 為什么輸出對象的時候輸出的不是成員變量而是成員函數的返回值
誰能解釋下
class CBANK
CBANK ac;
Console.WriteLine(ac);
---------
能輸出
Console.WriteLine()只能輸出字符串
你可以重寫CBANK類的 ToString()方法,因為在輸出的時候,其實就是調用了他的ToString()方法
實例化對象的時候不是只對成員變量申請空間 為什么輸出對象的時候輸出的不是成員變量而是成員函數的返回值
-----------------------------------
實例化的時候只為數據成員分配空間,成員變量都屬於數據成員
方法屬於操作成員
之所以輸出的不是成員變量而是成員函數的返回值,就是因為輸出的時候調用了ToString()方法,ToString()又調用了某個成員函數或實現了與某個成員函數相似的功能而已
2樓說的很好 確實有個ToString函數 但是這個函數是重載函數嗎 為什么會只調用這個函數呢
----------
首先感謝樓主對我的話認可,
這個函數是不是重載要看CBANK類,如果CBANK類中重寫了,那就是重寫了
至於為什么會只用這個函數就要問微軟了
舉例說明:
class Racer { private string name; private string car; public string Name { get { return name; } set { name = value; } } public string Car { get { return car; } set { car = value; } } public Racer(string name, string car) { this.name = name; this.car = car; } public override string ToString() { return name + "," + car; } static void Main(string[] args) {
Racer r = new Racer("Diacy", "Frace");
Console.Write(r);
Console.Read(); } }