首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 代码求解释,多谢

2014-01-17 
C# 代码求解释,谢谢// person.csusing Systemclass Person{private string myName N/Aprivate int my

C# 代码求解释,谢谢

// person.cs
using System;
class Person
{
    private string myName ="N/A";
    private int myAge = 0;

    // Declare a Name property of type string:
    public string Name
    {
        get 
        {
           return myName; 
        }
        set 
        {
           myName = value; 
        }
    }

    // Declare an Age property of type int:
    public int Age
    {
        get 
        { 
           return myAge; 
        }
        set 
        { 
           myAge = value; 
        }
    }

    public override string ToString()
    {
        return "Name = " + Name + ", Age = " + Age;
    }

    public static void Main()
    {
        Console.WriteLine("Simple Properties");

        // Create a new Person object:
        Person person = new Person();

        // Print out the name and the age associated with the person:
        Console.WriteLine("Person details - {0}", person);

        // Set some values on the person object:
        person.Name = "Joe";
        person.Age = 99;
        Console.WriteLine("Person details - {0}", person);

        // Increment the Age property:
        person.Age += 1;
        Console.WriteLine("Person details - {0}", person);
    }
}

输出结果是:
Simple Properties
Person details - Name = N/A, Age = 0
Person details - Name = Joe, Age = 99
Person details - Name = Joe, Age = 100

我想问一下哪个地方调用了public override string ToString()这个方法?
[解决办法]
Console.WriteLine会自动调用object的ToString()方法

public virtual void WriteLine(Object value) {
   if (value==null) {
       WriteLine();
   }
   else {
       // Call WriteLine(value.ToString), not Write(Object), WriteLine().
       // This makes calls to WriteLine(Object) atomic.
       IFormattable f = value as IFormattable;
       if (f != null)
          WriteLine(f.ToString(null, FormatProvider));
       else
          WriteLine(value.ToString());
   }

热点排行