【问题标题】:Function call in another namespace and class另一个命名空间和类中的函数调用
【发布时间】:2016-03-01 22:11:04
【问题描述】:

我喜欢连接 DLL(其中包含命名空间 Chart)并从第二个类(命名空间 WinApp2)调用子例程 public Simple()。有一个错误:

找不到简单的类型或命名空间名称

虽然我考虑了一个引用并将using Chart 并在第二个命名空间中创建了一个实例。

namespace Chart
{
    public partial class Simple : Form
    {
        Manage _mProject;
        public Simple()
        {
            InitializeComponent();
            _mProject = new Manage();
            _mProject.Add(new Task() { Name = "New Task" });
            _mChart.Init(_mProject);
        }
    }
}

using Chart;
namespace WinApp2
{
    public partial class Form4 : Form
    {
        Form2 fh;
        public Form4(Form2 aufrufer)
        {
          fh = aufrufer;
          InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
          var instance = new Simple();   (error !!!)
          instance.Simple();
        }
    }
}

【问题讨论】:

  • 您确定错误出现在new Simple 而不是instance.Simple 上吗?后者不会编译,因为 Simple() 是构造函数,而不是方法。
  • MegaTron,我在VS工程文件中连接了DLL源文件..
  • HimBromBeere,是的,它是 var instance = new Simple();带来错误的行..
  • @joe 尝试删除行 instance.Simple(); 并再次检查
  • MegTron,没有区别。仍然无法找到类型或命名空间名称“Simple”的错误提示(缺少 using-Directive 或 Assembly 引用?)。

标签: c# class call


【解决方案1】:

“考虑参考并使用图表”是什么意思?您实际上是否在参考部分中包含了 dll,或者您是否使用 Chart 并认为它会引用相关的 dll?

正确的步骤是:

  • 在VS中右键参考部分
  • 选择添加参考
  • 浏览到相关 dll 的位置,选择确定

另外一个原因可能是Chart是System.Web.DataVisualization.dll中定义的类,所以VS混淆了。尝试将您的 Chart 命名空间更改为其他名称,例如 MyChart

希望这会有所帮助..

【讨论】:

  • Minh,我按照您的步骤操作,但它仍然指示错误 CS0246:找不到类型或命名空间名称“简单”(缺少使用指令或程序集引用?)。显然,使用图表已正确找到,因此必须是任何参考。
  • Minh,行 现在显示没有问题,这表明 DLL 显然必须正确引用(或不正确?)。但是第二行 现在有一个错误,即 Simple() 没有 Simple(); 的定义。如果类与子例程同名..是否有问题?
  • 你不能调用 instance.Simple() 因为 Simple 不是一个方法,而是一个默认的构造函数,在你实例化类时调用,正如@HimBromBeere 正确指出的那样
  • 只需删除该 instance.Simple() 行,一切都会按预期工作
  • Minh,好的,我现在明白了你和 HimBromBeere 提到的构造函数。谢谢。
猜你喜欢
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 2017-11-04
  • 2011-05-25
  • 2016-06-22
  • 1970-01-01
相关资源
最近更新 更多