ValueType.ToString Metod

Definition

Returnerar det fullständigt kvalificerade typnamnet för den här instansen.

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

Returer

Det fullständigt kvalificerade typnamnet.

Kommentarer

Metoden ValueType.ToString åsidosätter Object.ToString metoden och tillhandahåller standardimplementeringen av ToString metoden för värdetyper. (Värdetyper är typer som definieras av nyckelordet struct i C# och av Structure... End Structure konstruktion i Visual Basic.) Funktionellt är implementeringen dock samma som för Object.ToString: metoden returnerar det fullständigt kvalificerade typnamnet.

Värdetyper som definieras av nyckelordet struct i C# och Structure... End Structure i Visual Basic åsidosätter vanligtvis metoden ValueType.ToString för att ge en mer meningsfull strängrepresentation av värdetypen. I följande exempel visas skillnaden. Den definierar två värdetyper och EmployeeAEmployeeB, skapar en instans av var och en och anropar dess ToString metod. EmployeeA Eftersom strukturen inte åsidosätter ValueType.ToString metoden visas endast det fullständigt kvalificerade typnamnet. Metoden EmployeeB.ToString ger däremot meningsfull information om objektet.

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

Observera att även om uppräkningstyper också är värdetyper härleds de från Enum klassen, som åsidosätter ValueType.ToString.

Anteckningar för Windows Runtime

När du anropar metoden ToString på en Windows Runtime struktur, tillhandahåller den standardbeteendet för värdetyper som inte åsidosätter ToString. Detta är en del av det stöd som .NET tillhandahåller för Windows Runtime (se .NET-stöd för Windows Store-appar och Windows Runtime). Windows Runtime strukturer kan inte åsidosätta ToString, även om de är skrivna med C# eller Visual Basic, eftersom de inte kan ha metoder. (Dessutom ärver inte strukturer i själva Windows Runtime ValueType.) De verkar dock ha ToString, Equals och GetHashCode metoder när du använder dem i C# eller Visual Basic-koden, och .NET tillhandahåller standardbeteendet för dessa metoder.

Gäller för