为什么在选择启动表单时必须指定命名空间?

时间:2011-11-08 15:06:46

标签: c#

我无法将我的新表单设置为启动表单,它抱怨它不存在。 但是几分钟后我尝试输入“Namespace.NewForm”并且有效。

在我的其他项目中,启动设置如下:

        Application.Run(new MyForm());

为什么在更改此项目中的启动表单时必须指定命名空间?

3 个答案:

答案 0 :(得分:4)

大概是因为你没有using指令:

using SomeNamespace;

...

Application.Run(new SomeForm());

用于调用Application.Run的代码没有什么特别不同 - 它只是普通的C#代码,遵循C#的正常规则。

答案 1 :(得分:1)

使用using指令,这样您就不必完全限定相关命名空间中的类型。

using MyNameSpace;

还值得指出的是,在C#中使用指令不会让您访问嵌套在您指定的命名空间中的命名空间(以防万一你想知道)。这意味着

using System;

无法访问System.IO

答案 2 :(得分:0)

听起来这里的背景比你分享的更多。无论您正在做什么,您引用MyForm的任何地方都需要能够解析对完全限定类(包括命名空间)的引用。这意味着它需要完全限定,或者需要将其命名空间包含在文件顶部的using语句中(并且是明确的)。

你的“工作”版本是否已经有using指令而“非工作”版本是不是?您的版本是否尝试在不同的位置设置启动表单?

我怀疑“工作”版本已经有using指令,并且由于某种原因,它在“非工作”版本中没有到位。