C# 類的對象輸出時,重寫ToString方法


一個類的對象能輸出嗎
如  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(); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM