在C#中使用命名空间系统声明可以省略吗?

时间:2014-01-04 04:49:27

标签: c# .net

以下是我从aspnetwebstack

获得的示例代码

http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/Html/MvcForm.cs



using System.Diagnostics.CodeAnalysis;
using System.Web.Mvc.Properties;

namespace System.Web.Mvc.Html
{
    public class MvcForm : IDisposable
    {
        private readonly ViewContext _viewContext;
        private bool _disposed;

        [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "httpResponse", Justification = "This method existed in MVC 1.0 and has been deprecated.")]
        [Obsolete("This constructor is obsolete, because its functionality has been moved to MvcForm(ViewContext) now.", true /* error */)]
        public MvcForm(HttpResponseBase httpResponse)
        {
            throw new InvalidOperationException(MvcResources.MvcForm_ConstructorObsolete);
        }

        public MvcForm(ViewContext viewContext)
        {
            if (viewContext == null)
            {
                throw new ArgumentNullException("viewContext");
            }

            _viewContext = viewContext;

            // push the new FormContext
            _viewContext.FormContext = new FormContext();
        }

IDisposable在命名空间System中定义。为了使用它,必须像这样声明命名空间System,

Using System

但是在这个例子中,它没有声明。

我的问题是

默认情况下是否存在包含命名空间的地方而没有C#中的声明?

1 个答案:

答案 0 :(得分:6)

在这种情况下不需要

using System;,因为代码已经位于System命名空间中(请参阅namespace System.Web.Mvc.Html行)。

要回答你的问题,除了已经存在于该命名空间之外,没有办法在C#中包含没有声明的命名空间。