在C#中“导入”另一个类

时间:2014-09-26 10:48:40

标签: c# class import visual-studio-2013

对于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
    {

但是我想将它们放在另一个类中并且有点导入它们

1 个答案:

答案 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(...);