【问题标题】:The namespace bla already contains a definition for (my partial) class命名空间 bla 已经包含(我的部分)类的定义
【发布时间】:2012-07-20 14:45:48
【问题描述】:

我创建了一个包含一些非常大的 .cs 文件的程序。所以我试图通过使用部分类来拆分其中一个。所以我创建了第二个文件,里面有相同的类名和相同的命名空间。 我从一个文件中剪切了一些函数并将其粘贴到第二个文件中。但是当我想运行程序时,它说该类已经存在。但它是一个部分类,它必须具有相同的名称:S

在第一个文件 (ChartWidget.cs) 中,它以:

namespace UGS.Sidebar.ChartWidget
{
    public partial class ChartWidget : UserControl
    {
        #region declarations
        private int id = -1;

.....

在第二个文件 (Debugging.cs) 中以:

namespace UGS.Sidebar.ChartWidget
{
    public partial class ChartWidget : UserControl
    {

        #region debugvars
        Random _r = new Random();
        #endregion
        .....

这些文件来自用户控件(如您所见),但我不认为这是问题所在?

希望你们能告诉我为什么它不起作用:( 对不起,我的英语不好,我真的很烂...... :)

【问题讨论】:

  • 这应该可以...当您将它们放在同一个文件中时会发生什么?
  • 您能否复制错误消息并将其粘贴到您的问题中?
  • 定义是否在同一个程序集中?
  • 我发现了错误!命名空间错误。我不得不将它更改为 UGS.Sidebar... 我真的不明白命名空间的东西,我应该在 msdn 上查找它:D。无论如何谢谢:)))
  • 我必须否决这个问题,因为你在提出这个问题之前没有做足够的研究。

标签: c# class partial


【解决方案1】:

检查您没有将类名附加到命名空间的末尾。例如如果你把你的新类放到同名的文件夹中,它会自动在命名空间名称上加上后缀

【讨论】:

  • 这是给我的。感谢那。我会一直在寻找!
  • 与此类似,我的问题是在子文件夹中创建类文件会导致生成反映文件夹结构的自动命名空间。当然,它不会将两者视为一个类。感谢您的提示!
【解决方案2】:

第二类不需要继承UserControl

【讨论】:

  • 为了澄清@Zafar 的帖子,他说:不要两次ChartWidget : UserControl
  • 哈哈,是的,我明白 Zaraf 所说的话:D 但它仍然无法正常工作,我不明白为什么 :( 但感谢您的提示 :)
  • 这并没有解决 OP 问题。
  • 基类不需要指定两次,但不禁止
【解决方案3】:

检查是否在其他地方定义了没有部分的类。 Right click on the class name + Find All Reference 可以提供帮助。

【讨论】:

  • 这需要项目构建成功,由于这个错误无法完成。
猜你喜欢
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-18
  • 2022-08-13
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
相关资源
最近更新 更多