0

我见过很多人在谈论 C# 中的继承,比如原始类型是从 System.Object 派生的,他们有时将整数、字符串...作为方法的参数传递给对象。我脑子里有几个问题让我很困惑。

1) System.Object 本身是原始类型吗?

根据我的理解,派生类是基类的复杂版本类继承图

2) System.Object 如何在方法中捕获参数(string,int..)

public void objcttest(object objct)
{
   if(objct is string)
       var strng = (string)objct;
}

3) 这是什么意思,使用上图中定义的类?

Object objct = new WorkItem(); // how is the object of the base class type instantiated with derived class type
4

1 回答 1

6

1) system.object 本身就是原始类型?

编号来自Type.IsPrimitive

基本类型为 Boolean、Byte、SByte、Int16、UInt16、Int32、UInt32、Int64、UInt64、IntPtr、UIntPtr、Char、Double 和 Single。

System.object 如何在方法中捕获 arguments(string,int..)

从每个非指针类型到object.

如何用 Derive Class 实例化类型基类的对象

它不是。你需要区分三件事:

  • 一个变量objct在你的例子中)
  • 引用(只是获取对象的一种方式)
  • 对象本身

的值objct只是一个参考。这个想法是,您可以将类型“派生类型”的表达式转换为其基类型(或它实现的接口),而无需实际更改引用本身。

这基本上是 .NET 中多态性的根源——而且这个话题太大了,无法在这里真正做到公正;我强烈建议您阅读一本很好的 C# 入门书籍,以便在这方面打下良好的基础。

于 2013-06-13T21:34:12.433 回答