当我没有放置命名空间时,我的类有什么命名空间?

时间:2009-04-03 19:40:29

标签: c# .net namespaces

如果我没有在我的类中添加命名空间(vs.net 2008),我的类是在哪个命名空间下构建的?

更新的 奇怪的是,当我添加一个命名空间时,我似乎无法从我的用户控件中引用类方法。

如果我明确设置名称空间,并在我的控件中添加'using ...',我仍然看不到它!

这怎么可能?

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
/// <summary>
/// Summary description for Globals
/// </summary>
public class Globals
{
    public Globals()
    { }


    public static string ConnectionString
    {
        get
        {
            return ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString;
        }
    }

}

我的控制:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class MyStats : System.Web.UI.UserControl
{




    protected void Page_Load(object sender, EventArgs e)
    {


    //etc.

2 个答案:

答案 0 :(得分:4)

如果您没有提供命名空间,那么您的类型没有命名空间。请记住,命名空间在编译后没有任何意义。它们只是附加到您键入名称的开头,以创建一个更有可能是唯一的更长名称。

编辑:我认为您可能有两个单独的程序集,一个应该引用另一个程序集,但事实并非如此。如果两个项目在一个解决方案中,那么类查看器将显示所有项目中的所有类型,但这并不一定意味着ProjectA引用ProjectB。要使用ProjectBProjectA的类型,您需要确保存在项目引用。

答案 1 :(得分:1)

如你所说,该类没有任何命名空间,没有using子句就可以访问它。

命名空间是一种通过分类来对您的课程进行排序的功能,主要是根据他们的功能

修改

根据你的更新,我认为你的“全球”课程可能会因为全局::子句而引起麻烦...你是否介意改变课程名称以确定它是否有效?