0

在 .Net 中,所有事物都是对象,但我有疑问。我写了一个方法

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

但我没有添加 system.object 并且添加命名空间时出错。我的问题是:如果所有东西都在 .NET 驱动的表单对象中,但为什么我应该添加命名空间?

4

3 回答 3

3

仅仅因为一切都是一个Object并不意味着Object不能在System命名空间中。确实如此,而且它遵循通常的命名空间规则。

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

于 2012-09-16T16:40:22.037 回答
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)

顺便说一句,并非一切都来自对象...

于 2012-09-16T16:48:07.777 回答
2

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

让它以其他方式表现将与 .Net 的其余部分不一致,并且可能会导致更多混乱。

于 2012-09-16T16:45:17.647 回答