這篇關(guān)于C#Object類型的文章最初寫在我的個(gè)人博客了,這次把它粘在這里,構(gòu)成C#基礎(chǔ)知識(shí)的一部分,如果大家對(duì)C# object有什么新的認(rèn)識(shí),請(qǐng)留言。
object 類型在 .NET Framework 中是System.Object 的別名。在 C# 的統(tǒng)一類型系統(tǒng)中,所有類型(包括預(yù)定義類型、用戶定義類型、引用類型和值類型)都是直接或間接從System.Object 繼承的。所以,我們可以稱object類型是.NET數(shù)據(jù)類型的祖宗。因此,我們可以把任何類型的值賦給object 類型的變量。我們把這個(gè)過程稱之為裝箱,這一點(diǎn),我已經(jīng)在另外一篇文章中說了,在這里不再贅述,下面給出一個(gè)簡(jiǎn)單的例子。
// keyword_object.cs
using System;
class SampleClass
{
public int i = 10;
}
class MainClass
{
static void Main()
{
object a;
a = 1; // an example of boxing(裝箱操作)
Console.WriteLine(a); //輸出a的值
Console.WriteLine(a.GetType()); //輸出a在System的信息
Console.WriteLine(a.ToString()); //將a轉(zhuǎn)換為字符串后輸出
a = new SampleClass(); //把把類類型賦給對(duì)象類型a
SampleClass classRef; //定一個(gè)類SampleClass的對(duì)象classRef
classRef = (SampleClass)a; //把a(bǔ)強(qiáng)制轉(zhuǎn)換為SampleClass類型并賦給對(duì)象classRef
Console.WriteLine(classRef.i); //把對(duì)象classRef中的i輸出
}
}
輸出結(jié)果如下:
1
System.Int32
1
10
(注:本例子摘自msdn.microsoft.com,并作了簡(jiǎn)單注釋)
新聞熱點(diǎn)
疑難解答