这篇关于C#Object类型的文章最初写在我的个人博客了,这次把它粘在这里,构成C#基础知识的一部分,如果大家对C# object有什么新的认识,请留言。
object 类型在 .NET Framework 中是System.Object 的别名。在 C# 的统一类型系统中,所有类型(包括预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从System.Object 继承的。所以,我们可以称object类型是.NET数据类型的祖宗。因此,我们可以把任何类型的值赋给object 类型的变量。我们把这个过程称之为装箱,这一点,我已经在另外一篇文章中说了,在这里不再赘述,下面给出一个简单的例子。
// 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转换为字符串后输出
a = new SampleClass(); //把把类类型赋给对象类型a
SampleClass classRef; //定一个类SampleClass的对象classRef
classRef = (SampleClass)a; //把a强制转换为SampleClass类型并赋给对象classRef
Console.WriteLine(classRef.i); //把对象classRef中的i输出
}
}
输出结果如下:
1
System.Int32
1
10
(注:本例子摘自msdn.microsoft.com,并作了简单注释)
新闻热点
疑难解答