2009-07-23 48 views
5

一些簡單的類型,如int,string,....很容易認識到它們是ValueTypes或RefrenceTypes。但我想知道有什麼方法可以區分嗎?如何區分類型是ValueType還是RefereceType?

+1

這完全取決於你的語言/運行。 – 2009-07-23 07:01:53

+0

注意到了。我認爲這是一個.NET/C#的問題。我對嗎? – 2009-07-23 07:03:07

+0

@ Martinho:你說得對。 – odiseh 2009-07-23 07:30:38

回答

7

所有結構,枚舉和本機類型都是值類型。

在運行時,您可以檢查這樣的:

Type type = typeof(TypeName); 

if (type.IsValueType) 
{ 
    //... 
} 
4

字符串不是值類型。

以下是名單中最常用的value types

  • 布爾(System.Boolean)
  • 字節(System.Byte)
  • CHAR(System.Char)
  • 十進制( System.Decimal)
  • 雙(System.Double)
  • 浮子(System.Single)
  • INT(System.Int32)
  • 長(System.Int64)
  • 爲sbyte(System.SByte)
  • 短(System.Int16)
  • UINT(System.UInt32)
  • ULONG(系統。答:64)
  • USHORT(System.UInt16形式)
  • 的System.DateTime

除了那些:

  • 任何類型的枚舉
  • 任何類型的一個結構

所有其他類型是引用類型。

相關問題