【问题标题】:Where are the namespaces in visual studioVisual Studio 中的命名空间在哪里
【发布时间】:2015-08-09 22:31:41
【问题描述】:

我是 Visual Studio 和 C# 的新手。我浏览了有关 C# 的教程,我浏览的所有示例程序都是在命名空间中编写的。但是当我在 Visual Studio 上使用模板时,所有预定义的代码都不在命名空间内。程序中的类不应该在命名空间中吗?为什么它们默认不存在?我应该定义它们吗?

谢谢!

[编辑] 下面是其中一个没有命名空间的文件中的代码。

using System;   
using System.Web.Security;  

public partial class Login : System.Web.UI.Page  
{   
    protected void btnSubmit_Click( object sender, EventArgs e )  
    {  
        // Note: Add code to validate user name, password. This code is for illustrative purpose only.  
        // Do not use it in production environment.          
        FormsAuthentication.RedirectFromLoginPage( txtUserName.Text, false );  
    }  
}

【问题讨论】:

  • 你能展示一段你说没有命名空间的代码块吗?可以帮忙解释一下。
  • C# namespace examples 上进行 msdn google 搜索,这将向您展示如何使用它们以及它们是如何工作的C# MSDN namespace
  • 命名空间不是必需的。但是,您应该始终拥有一个以避免名称冲突。
  • @Walker:请查看编辑
  • 正如您看到的 partial 关键字,我猜 Login 类 def 的另一部分将在某个命名空间中。这就是 Login 类的命名空间。

标签: c# visual-studio-2010 visual-studio namespaces


【解决方案1】:

在您的项目属性中声明了一个默认命名空间。但明确声明它是一个好习惯。 如果您的项目没有文件夹,则所有类都在同一个命名空间内,因此是多余的。

【讨论】:

  • 嘿,我使用的是 Visual Studio 2010。我在属性窗口中找不到任何默认命名空间。是你说的那个地方吗?
  • 右键单击项目>选择“属性”>选择左侧的“应用程序”选项卡>查看标有“默认命名空间”的文本框
【解决方案2】:

命名空间旨在提供一种将一组名称与另一组名称分开的方法。在一个命名空间中声明的类名不会与在另一个命名空间中声明的相同类名冲突。详情请参考https://msdn.microsoft.com/en-us/library/z2kcy19k.aspx

【讨论】:

    【解决方案3】:

    一般

    命名空间基本上只是一种对类进行分组并为项目提供结构的方式。

    每个命名空间的类名必须是唯一的。

    您还可以“封装”您的命名空间。例如,您可以创建一些命名空间SomeProjectSomeProject.CoreSomeProject.UI

    如果您使用 using SomeProject.,Intellisense 现在会建议 CoreUI

    用法

    所以要使用 SomeProject.Core 中的 MyClass 类,您将有三种使用它的可能性。

    1. 使用指令

    using SomeProject.Core;

    MyClass调用它

    1. 用整个命名空间调用它

    SomeProject.Core.MyClass

    1. 显式 using 指令(很少使用,但可能对较长的命名空间有用)

    using AnyName = SomeProject.Core;

    AnyName.MyClass拨打MyClass

    所以我想暂时就这些了。如果我忘记了什么,请在 cmets 中告诉我

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 1970-01-01
      • 2012-09-25
      • 2010-11-07
      • 1970-01-01
      • 2019-03-16
      • 2017-12-14
      • 2015-07-13
      • 1970-01-01
      相关资源
      最近更新 更多