一切都是对象

时间:2012-09-16 16:38:52

标签: c#

<。>在.Net All Thing是Object,但我有疑问。我写了一个方法

public static MvcHtmlString ObjectTable(this HtmlHelper helper, 
                              ICollection<Object> objects, ICollection<string> header)

但我没有添加system.object并因添加命名空间而获得错误。 我的问题是:如果.NET驱动的所有内容都是对象,但为什么我应该添加命名空间?

3 个答案:

答案 0 :(得分:3)

因为一切都是Object并不意味着Object不能在System名称空间中。它是,它遵循通常的命名空间规则。

(您也可以使用不带object的小写using System别名。)

答案 1 :(得分:3)

添加using指令的目的只是允许您在该命名空间中使用名称而不对其进行完全限定。

所以你没有来添加using指令。你可以写:

public static MvcHtmlString ObjectTable(this HtmlHelper helper, 
    ICollection<System.Object> objects, ICollection<string> header)

或者,由于object 总是 System.Object的别名,您可以写:

public static MvcHtmlString ObjectTable(this HtmlHelper helper, 
    ICollection<object> objects, ICollection<string> header)

顺便说一句,not everything derives from object ......

答案 2 :(得分:2)

如你所说,所有内容都是从Object派生的,但System.Object就像你要引用的每个其他类型一样,你要么必须显式引用它(即System.Object),要么为命名空间添加using 。

如果它的行为与其他.Net不一致,可能会引起更多的混淆。