【发布时间】:2009-03-13 18:29:46
【问题描述】:
我是 c# 的新手,我想知道是否可以创建多个派生类库,每个派生类库都代表一个特定的项目。我将调用这两个类库 ClassA 和 ClassB。每个类将共享一个 BaseClass(命名空间 BaseNS)。
然后我创建了一个引用 ClassA 和 ClassB 的 c# 应用程序。这会产生错误,因为它们都具有相同的 BaseClass。没问题,我在参考上使用了“别名”。这工作得很好。所以我有:
外部别名 Class1Alias; 外部别名 Class2Alias; ...
这是我遇到问题的地方。
我想创建一个以 BaseClass 作为参数的函数。
公共无效 SetData(BaseClass bc) { }
不能这样做,因为 BaseClass 由于别名而没有定义。所以它必须是:
公共无效 SetData(Class1Alias.BaseNameSpace.BaseClass bc) {}
这可行,但现在我想做以下事情: ...
Class1Alias.Class1Space.Class1 c1 = new Class1Alias.Class1Space.Class1();
Class2Alias.Class2Space.Class2 c2 = new Class2Alias.Class2Space.Class2();
这行得通
Class1Alias.BaseNameSpace.BaseClass bc = (Class1Alias.BaseNameSpace.BaseClass)c1;
SetData(bc);
这不是
Class1Alias.BaseNameSpace.BaseClass bc = (Class1Alias.BaseNameSpace.BaseClass)c2;
SetData(bc);
我尝试将它强制转换为 Class2Alias,这可行,但我无法调用我的 SetData 函数,因为它需要 Class1Alias。
有没有办法解决这个问题?
【问题讨论】:
标签: c# namespaces