【问题标题】:What namespace are my classes in when I don't put a namespace?当我不放置命名空间时,我的类在什么命名空间中?
【发布时间】:2010-10-17 10:55:38
【问题描述】:

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

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

如果我明确设置了一个命名空间,并在我的控件中添加了一个“使用 ...”,我仍然看不到它!

这怎么可能?

    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.

【问题讨论】:

  • 您的班级是在与用户控件不同的项目中还是在同一个项目中?
  • 你也可以发布一些代码 - 这可能有助于我们弄清楚发生了什么。
  • 好的,我发布了一些代码,我之前在 globals 类中有一个命名空间,但是当我在控件中引用它时它仍然不起作用。
  • 你有没有编译错误?
  • 所以如果你使用这种类型,就好像智能感知正在工作一样,它编译得好吗?似乎只有智能感知被打破了吗?

标签: c# .net namespaces


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

正如你所说,该类将没有任何命名空间,它可以在没有 using 子句的情况下访问。

命名空间是一种通过分类(主要是根据它们的功能)对类进行排序的功能

编辑

根据您的更新,我认为您的“全局”类可能会因为 global:: 子句而造成麻烦...您介意更改类的名称以查看它是否有效吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多