ValueType.ToString 메서드

정의

이 인스턴스의 정규화된 형식 이름을 반환합니다.

public:
 override System::String ^ ToString();
public override string ToString ();
public override string? ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String

반환

String

정규화된 형식 이름입니다.

설명

메서드는 ValueType.ToString 메서드를 Object.ToString 재정의하고 값 형식에 대한 메서드의 기본 구현을 ToString 제공합니다. 값 형식은 C#의 struct 키워드와 Visual Basic의 Structure...End Structure 구문에 의해 정의된 형식입니다. 그러나 기능적으로 구현은 다음과 같습니다 Object.ToString. 메서드는 정규화된 형식 이름을 반환합니다.

C#의 키워드와 Visual Basic의 Structure...End Structure 구문으로 정의된 struct 값 형식은 일반적으로 메서드를 재정 ValueType.ToString 의하여 값 형식의 보다 의미 있는 문자열 표현을 제공합니다. 다음 예제에서 차이점을 보여 줍니다. 두 가지 값 형식 EmployeeA 을 정의하고 EmployeeB각 인스턴스를 만들고 해당 메서드를 ToString 호출합니다. 구조체가 EmployeeA 메서드를 재정의 ValueType.ToString 하지 않으므로 정규화된 형식 이름만 표시합니다. 반면에 메서드는 EmployeeB.ToString 개체에 대한 의미 있는 정보를 제공합니다.

using System;
using Corporate.EmployeeObjects;

public class Example
{
   public static void Main()
   {
      var empA = new EmployeeA{ Name = "Robert",};
      Console.WriteLine(empA.ToString());
      
      var empB = new EmployeeB{ Name = "Robert",};
      Console.WriteLine(empB.ToString());
   }
}

namespace Corporate.EmployeeObjects
{
    public struct EmployeeA
    {
         public String Name { get; set; }
    }
    
    public struct EmployeeB
    {
         public String Name { get; set; }

         public override String ToString()
         {
              return Name;
         }
    }  
}
// The example displays the following output:
//     Corporate.EmployeeObjects.EmployeeA
//     Robert
namespace Corporate.EmployeeObjects

[<Struct>]
type EmployeeA =
    val mutable Name : string

[<Struct>]
type EmployeeB =
    val mutable Name : string
    override this.ToString() = 
          this.Name

module Example =
     let empA = EmployeeA(Name="Robert")
     printfn $"{empA}"

     let empB = EmployeeB(Name="Robert")
     printfn $"{empB}"
// The example displays the following output:
//     Corporate.EmployeeObjects.EmployeeA
//     Robert
Imports Corporate.EmployeeObjects

Module Example
   Public Sub Main()
      Dim empA As New EmployeeA With { .Name = "Robert" }
      Console.WriteLine(empA.ToString())
      
      Dim empB = new EmployeeB With { .Name = "Robert" }
      Console.WriteLine(empB.ToString())
   End Sub
End Module

Namespace Corporate.EmployeeObjects
    Public Structure EmployeeA
         Public Property Name As String 
    End Structure
    
    Public Structure EmployeeB
         Public Property Name As String 

         Public Overrides Function ToString() As String 
              Return Name
         End Function
    End Structure  
End Namespace
' The example displays the following output:
'     Corporate.EmployeeObjects.EmployeeA
'     Robert

열거형 형식도 값 형식이지만 재정의 Enum 되는 클래스에서 파생됩니다 ValueType.ToString.

Windows 런타임에 대한 참고 사항

Windows 런타임 구조에서 메서드를 호출 ToString 할 때 재정 ToString의하지 않는 값 형식에 대한 기본 동작을 제공합니다. 이는 .NET Framework가 Windows 런타임에 대해 제공하는 지원의 일부입니다( Windows 스토어 앱 및 Windows 런타임에 대한 .NET Framework 지원 참조). Windows 런타임 구조는 C# 또는 Visual Basic으로 작성된 경우에도 메서드를 사용할 수 없으므로 재정 ToString의할 수 없습니다. 또한 Windows 런타임 자체의 구조체는 상속ValueType되지 않습니다. 그러나 C# 또는 Visual Basic 코드에서 사용할 때 메서드와 GetHashCode 메서드가 있는 ToStringEquals것처럼 보이며 .NET Framework는 이러한 메서드에 대한 기본 동작을 제공합니다.

적용 대상