gpt4 book ai didi

c# - 如何使对象属于命名空间(VS 2008)?

转载 作者:行者123 更新时间:2023-11-30 18:09:45 24 4
gpt4 key购买 nike

我有一个 namespace Company.Controls,其中包含几个控件。我还有一个名为“Common”的类,其中包含我在整个控件中使用的枚举/结构/静态方法。

有没有办法让这些“Common”部分属于 Company.Controls 命名空间,这样我就不必一直输入“Common.Structure”?本质上让他“通用”命名空间和类。

阅读代码时显得凌乱和困惑。

示例(所有其他控件都在 Blah.Controls.Common 命名空间中)

namespace Blah.Controls
{
public enum ControlTouchState
{
Down = 0x00,
Up = 0x01,
}

public Common()
{
//Stuff here
}

}

谢谢。

最佳答案

你无法得到你想要的;在 C# 中,所有方法都必须在一个类中。

根据您的 Common 类中的内容,您可能会通过使用扩展方法找到更令人满意的东西:

namespace Blah.Controls
{
public class CommonControl { }

public static class Common
{
public static void Foo(this CommonControl cc) { }
}

public class Control1 : CommonControl
{
public void Bar()
{
this.Foo();
}
}
}

您可能会考虑的另一件事是使用 partial 类,它可以让您在别处编写简单的包装器:

namespace Blop.Controls
{
public static class Common
{
public static void Foo() { }
}

public partial class Control1
{
public void Bar()
{
Foo();
}
}

public partial class Control1
{
public void Foo()
{
Common.Foo();
}
}
}

显然,引入一些继承可以消除一些重复;我假设您不想这样做。

关于c# - 如何使对象属于命名空间(VS 2008)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2260087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com