一个类的对象能输出吗
如 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(); } }