有人可以帮我解释一下这个怎么样?
ToString()如果没有创建实际的方法,怎么可能返回任何东西呢?
using System;
namespace ConsoleApplication4
{
class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
**/*
* What is ToString() method?
* What I am overriding Here?
*/**
public override string ToString()
{
return "Name= " + Name + " Age=" + Age;
}
}
class Sample
{
static void Main(string[] args)
{
Person P1 = new Person();
P1.Name = "ABC";
P1.Age = 21;
Console.WriteLine(P1.ToString());
Console.ReadLine();
**//Ouput Name = ABC Age = 23**
}
}
}
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 11
C#中的所有类和结构都是隐式派生的System.Object.你是压倒性的Object.ToString.
在C#中,当你写:
class Person
{
Run Code Online (Sandbox Code Playgroud)
它与写作实际上是一样的
class Person : System.Object
{
Run Code Online (Sandbox Code Playgroud)
如何在不创建实际方法的情况下从ToString()返回任何内容?
如果你不覆盖ToString,你将获得提供的默认实现System.Object.ToString().
隐式基类存在System.Object于C#语言规范的4.2.2中:
对象类类型是所有其他类型的最终基类.C#中的每个类型都直接或间接地从对象类类型派生.
关键字对象只是预定义类System.Object的别名.
请注意,它与自定义略有不同struct,因为值类型派生自System.ValueType但System.Object仍然是继承层次结构的一部分.
这在C#语言规范的4.1.1中有记录:
所有值类型都隐式继承自System.ValueType类,而System.ValueType又继承自类对象.任何类型都不可能从值类型派生,因此值类型被隐式密封(第10.1.1.2节).
请注意,System.ValueType本身不是值类型.相反,它是一个类类型,从中自动派生所有值类型.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |