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

Valori restituiti

Nome completo del tipo.

Commenti

Il ValueType.ToString metodo esegue l'override del Object.ToString metodo e fornisce l'implementazione predefinita del ToString metodo per i tipi valore. I tipi valore sono tipi definiti dalla parola chiave in C# e dal ... costrutto /> : il metodo restituisce il nome completo del tipo.

Tipi valore definiti dalla parola chiave /> ... costrutto in Visual Basic in genere esegue l'override del metodo per fornire una rappresentazione di stringa più significativa del tipo di valore. Nell'esempio che segue viene illustrata la differenza. Definisce due tipi di valore e EmployeeAEmployeeB, crea un'istanza di ognuno e chiama il relativo ToString metodo. Poiché la struttura non esegue l'override EmployeeA del ValueType.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 valore, derivano dalla classe , che esegue l'override EnumValueType.ToStringdi .

Note su Windows Runtime

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

Si applica a