对于Windows应用程序使用Visual Studio 2013,我在MainForm
中有一些代码需要另一段代码才能运行,我试图将这些必需的代码单独转移到另一个类并导入它(使MainForm
课更容易理解)
当我将代码移动到它时,我似乎无法导入该类,这里有一些男女同志包含的内容:
static void WinEventProc(IntPtr hWinEventHook, uint eventType,
IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime)
{ .. }
和一些
delegate void WinEventDelegate(IntPtr hWinEventHook, uint eventType,
IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime);
[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);
所以那些通常在我的
中namespace myClass
{
public partial class MainForm : Form
{
但是我想将它们放在另一个类中并且有点导入它们
答案 0 :(得分:2)
您不需要导入'他们只是因为在另一个班级(同一个项目)。如果您使用的是不同的命名空间,那么可以包含它,但您并不需要。
例如,您可以将它们放在另一个类中(可能最好是静态类,因为它们是静态方法),然后从其他代码调用它们......
namespace SameNamespace
{
static class NewClass
{
[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);
}
}
然后在您的表单代码中,您只需使用以下内容:
NewClass.GetWindowThreadProcessId(...);
如果要将类放在不同的命名空间中,例如:
namespace DifferentNamespace
{
...
然后你要么包括它,就像这样:
using DifferentNamespace;
或者您可以在需要该函数时显式调用它:
DifferentNamespace.NewClass.GetWindowThreadProcessId(...);