ValueType.ToString Metodo

Definizione

Restituisce il nome completo del tipo di questa istanza.

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

Restituisce

Nome di tipo completo.

Commenti

Il ValueType.ToString metodo esegue Object.ToString l'override del metodo e fornisce l'implementazione predefinita del ToString metodo per i tipi di valore. I tipi di valore sono tipi definiti dalla struct parola chiave in C#e dal Structurecostrutto ...End Structure in Visual Basic. In modo funzionale, tuttavia, l'implementazione è uguale a quella di Object.ToString: il metodo restituisce il nome di tipo completo.

I tipi di valore definiti dalla struct parola chiave in C# e il Structurecostrutto ...End Structure in Visual Basic in genere eseguono l'override del metodo per fornire una rappresentazione ValueType.ToString stringa più significativa del tipo di valore. Nell'esempio che segue viene illustrata la differenza. Definisce due tipi di EmployeeA valore e EmployeeB, crea un'istanza di ogni oggetto e chiama il ToString relativo metodo. Poiché la struttura non esegue l'override del EmployeeAValueType.ToString metodo, visualizza solo il nome completo del tipo. Il EmployeeB.ToString metodo, d'altra parte, fornisce informazioni significative sull'oggetto.

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

Si noti che, anche se i tipi di enumerazione sono anche tipi di valore, derivano dalla classe, che esegue l'override EnumValueType.ToStringdi .

Note per la Windows Runtime

Quando si chiama il metodo in una struttura Windows Runtime, fornisce il comportamento predefinito per i tipi di valore che non eseguono l'override ToStringToStringdi . Questo è parte del supporto fornito da .NET per la Windows Runtime (vedere Supporto .NET per le app di Windows Store e Windows Runtime). Windows Runtime strutture non possono eseguire l'override, anche se sono scritte ToStringcon C# o Visual Basic, perché non possono avere metodi. Inoltre, le strutture nel Windows Runtime stesso non ereditano ValueType.) Tuttavia, sembrano avere ToStringmetodi , Equalse GetHashCode quando vengono usati nel codice C# o Visual Basic e .NET fornisce il comportamento predefinito per questi metodi.

Si applica a