2014-04-23 4 views
0

그래서 인스턴스 작동 방식 및 설정 방법 등을 배우므로 별도로 출력하지 않고 인스턴스의 변수를 출력 할 수 있는지 궁금합니다.출력 클래스 인스턴스 변수

예 //

출력 이제
class Program 
{ 
    static void Main(string[] args) 
    { 
     Person Ryan = new Person(); 
     Ryan.Age = 16; 
     Ryan.Name = "Rynoh97"; 
    } 
} 
class Person 
{ 
    public int Age = 0; 
    public string Name = ""; 
} 

내 나이에 내가 Console.WriteLine(Ryan.Age);을 할 필요가 내 이름을 내가 Ryan.Name 필요하지만 방법은 출력이 둘 다 뭔가 복잡하지 않고 동시에.

나는 Ryan.ToString()을 시도했지만, Person의 클래스 위치를 얻었습니다.

어떤 조언이 필요합니까?

답변

5

ToString을 호출 할 때 Person 클래스에서 ToString을 재정의하고 원하는대로 출력 할 수 있습니다. 여기 예를 들어 있어요

:

string personDescription = String.Format("Name: {0}, Age: {1}", Ryan.Age, Ryan.Name); 
Console.WriteLine(personDescription); 

Console.WriteLine도이 작업을 수행하기 위해 과부하되어 있습니다 : 그렇다 ToString을 무시에서

http://msdn.microsoft.com/en-us/library/ms173154.aspx

2

, 당신은 또한 및 String.format를 사용할 수 있습니다 너 :

Console.WriteLine("Name: {0}, Age: {1}", Ryan.Age, Ryan.Name); 

.ToString은 일반적으로 괜찮습니다. 당신은 오직 하나의 오버라이드 만 얻습니다. "사람"을 여러 가지 방식으로 표시해야하는 경우이 방법은 좀 더 융통성이 있습니다. 반면에 ToString()을 재정의하면 ListBox와 같은 객체에 객체를 표시 할 때 매우 유용합니다.

0

toString 메서드를 재정 의하여 원하는대로 표시 할 수 있습니다. 이런 식으로.

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

그러면 Ryan.toString() 메서드를 호출 할 때마다 대신이 정보가 표시됩니다. 희망이 도움이됩니다.

관련 문제