gpt4 book ai didi

C# - 在共享命名空间内跨文件使用命名空间

转载 作者:行者123 更新时间:2023-12-04 17:06:56 26 4
gpt4 key购买 nike

我有一个命名空间,它会在我的项目(每个产品生成)中经常更改,并且希望保留对包含在我定义基类的文件中的特定命名空间的引用。在其他文件中,我定义了子类,这些子类通常可以通过继承获取对命名空间的引用,但是我遇到了一种情况,因为对象非常具体,我更愿意链接到基类中的命名空间而不是每个对象。

BaseClass.cs

namespace CommonNameSpace
{
using _productSpecificNameSpace;

_productSpecificNameSpace.thing.otherthing thingotherthingGood = _productSpecificNameSpace.thing.otherthing.Success;
_productSpecificNameSpace.thing.otherthing thingotherthingBad = _productSpecificNameSpace.thing.otherthing.SpecificFailure;

public class BaseClass
{
}
}


SubClass.cs

namespace CommonNameSpace
{
public class SubClass : BaseClass
{
var yeaOrNeigh = thingotherthingGood
}
}

如何访问 SubClass.cs 中的 _productSpecificNameSpace 而不必在每个子类中调用它 _productSpecificNameSpace 或命名我在 BaseClass 中需要的每个可能的对象?有没有办法获得附加到类的命名空间的别名以进行继承?

编辑:理想情况下,我希望能够访问可互换命名空间中的数据类型,因为它主要是一个枚举库。难道接口(interface)不会用接口(interface)类型替换这些枚举的类型,而这种接口(interface)类型与对需要底层类型的 API 的调用是无法比拟的吗?

最佳答案

如果您使用接口(interface),则可以在运行时实例化您想要的生成,而不会影响任何现有代码:

interface IMyThing
{
void DoStuff()
}

abstract class BaseThing : IMyThing
{
public virtual void DoStuff()
}

第一代:
class MyGen1 : BaseThing
{
public override void DoStuff()
{
// I'm Gen 1
}
}

第 2 代:
class MyGen2 : BaseThing
{
public override void DoStuff()
{
// I'm Gen 2
}
}

关于C# - 在共享命名空间内跨文件使用命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48229551/

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