我正在使用C#.net 4.0 VS 2010。
我在Stackoverflow中复制了以下代码,并确认所有这些都可以使用,但我在调用“Application.Run(new ShoutBox())时遇到语法错误;”错误是“无法找到类型或名称空间'ShoutBox'。”
该项目最初是作为控制台应用程序构建的。我刚刚添加了一个名为ShoutBox的窗体,保存为ShoutBox.cs。我已将代码传输到表单,因此它不会在控制台中显示内容,而是在我创建的Windows窗体的文本框中显示。
我错过了什么?我怎样才能使它发挥作用?
using System;
using System.Windows.Forms;
namespace ChatApp
{
class ConsoleApplication1
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
//this one works
Application.Run(new Form()); // or whatever
//this one does not work, error on second ShoutBox
Form ShoutBox = new Form();
Application.Run(new ShoutBox());
}
}
}
仅供参考,这是我的最终工作代码: 此代码创建一个新的Shoutbox表单而不是空白表单。
using System;
using System.Windows.Forms;
using ShoutBox; // Adding this
namespace ChatApp
{
class ConsoleApplication1
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Form ShoutBox1 = new ShoutBox.ShoutBox(); //Changing this
Application.Run(ShoutBox1); //Changing this
}
}
}
我的Shoutbox表格如下:
using System
using System.Windows.Forms;
namespace ShoutBox
{
public partial class ShoutBox : Form
{
....
答案 0 :(得分:5)
ShoutBox
是引用Form的变量的名称,不能调用新的ShoutBox()。
您已经在上一行中实例化了表单,现在只需调用
Application.Run(ShoutBox);
但是,如果你有一个以这种方式定义的名为ShoutBox的表单
namespace ShoutBox
{
public partial class ShoutBox: Form
{
.....
}
}
然后你需要在文件的开头添加using声明
using ShoutBox;
或者您只需将ShoutBox.cs
文件中使用的命名空间更改为程序主文件中使用的相同命名空间
namespace ChatApp
{
public partial class ShoutBox: Form
{
....
}
}
答案 1 :(得分:0)
你缺少一两件事。
首先,您需要导入ShoutBox
所在的命名空间:
using Your.Namespace.Where.ShoutBox.Is.Declared;
在Visual Studio中执行此操作的简单方法是将光标放在单词ShoutBox
上的某个位置,然后按 Alt + Shift + F10 或..作为一些比我更有效率的人,按 Ctrl + 。。这将打开一个菜单,显示需要包含的命名空间。
此外,如果该命名空间位于另一个程序集中(您提到那个),那么您需要将其添加为项目的引用。
另外,这个:
Form ShoutBox = new Form();
Application.Run(new ShoutBox());
..不正确。我会建议一个关于基本类创建的教程。
答案 2 :(得分:0)
ShoutBox类可能位于不同的名称空间中。
代码Form ShoutBox = new Form();
没用,只需要Application.Run(new ShoutBox());
。