방법: ToString 메서드 재정의
C#의 모든 클래스 또는 구조체는 Object 클래스를 암시적으로 상속합니다.
따라서 C#의 모든 개체는 해당 개체의 문자열 표현을 반환하는 ToString 메서드를 가져옵니다.
예를 들어 int
형식의 모든 변수에는 해당 내용을 문자열로 반환할 수 있도록 하는 ToString
메서드가 있습니다.
int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42
사용자 지정 클래스 또는 구조체를 만들 때 해당 형식에 대한 정보를 클라이언트 코드에 제공하려면
ToString 메서드를 재정의해야 합니다.
클래스 또는 구조체의 ToString 메서드를 재정의하려면
다음 한정자 및 반환 형식으로
ToString
메서드를 선언합니다.public override string ToString(){}
문자열을 반환하도록 메서드를 구현합니다.
다음 예제에서는 클래스의 특정 인스턴스와 관련된 데이터뿐 아니라 클래스의 이름을 반환합니다.
class Person { public string Name { get; set; } public int Age { get; set; } public override string ToString() { return "Person: " + Name + " " + Age; } }
다음 코드 예제와 같이
ToString
메서드를 테스트할 수 있습니다.Person person = new Person { Name = "John", Age = 12 }; Console.WriteLine(person); // Output: // Person: John 12
ToString
메서드와 함께 형식 문자열 및 다른 형식의 사용자 지정 서식을 사용하는 방법에 대한 자세한 내용은 형식 서식 지정을 참조하세요.
중요
이 메서드를 통해 제공할 정보를 결정하는 경우 신뢰할 수 없는 코드에서 클래스 또는 구조체가 사용될지 여부를 고려합니다. 악성 코드에서 악용될 수 있는 정보를 제공하지 않으면 주의해야 합니다.
ref : https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/how-to-override-the-tostring-method
반응형
'프로그래밍(Programming) > C#' 카테고리의 다른 글
추상 및 봉인 클래스와 클래스 멤버 (0) | 2018.09.02 |
---|---|
implicit 암시적 사용자 정의 형식 변환 연산자 (0) | 2018.08.30 |
new 와 override 차이 (0) | 2018.08.30 |
Hashtable 클래스 (0) | 2018.08.29 |
.NET Framework 플랫폼 아키텍처 (C# 실행 과정) (0) | 2018.08.26 |