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 ,以及 Structure End Structure Visual Basic 中的 ... 結構。 ) 功能上,其實作與的相同 Object.ToString :方法會傳回完整的型別名稱。

c # 中的關鍵字所定義的實數值型別 structStructure End Structure Visual Basic 中的 ... 結構通常會覆寫 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
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 執行階段的注意事項

當您 ToString 在 Windows 執行階段結構上呼叫方法時,它會為不會覆寫的實數值型別提供預設行為 ToString 。 這是 .NET Framework 為 Windows 執行階段提供的支援的一部分 (請參閱Windows Store 應用程式 .NET Framework 支援和 Windows 執行階段) 。 Windows 執行階段結構無法覆寫 ToString ,即使它們是使用 c # 或 Visual Basic 撰寫的,因為它們不能有方法。 (此外,Windows 執行階段本身的結構並不會繼承 ValueType 。 ) 不過, ToString Equals GetHashCode 當您在 c # 或 Visual Basic 程式碼中使用它們時,它們看起來會有、和方法,而 .NET Framework 則提供這些方法的預設行為。

適用於