【发布时间】:2012-09-14 09:07:58
【问题描述】:
简化的类如下。每个命名空间都在单独的 .cproj 中。构建 z.exe 时出现“B 在未引用的程序集中定义”的问题。
我添加了 ctor A(string s),因为我不想在每个 z 中都包含 y.dll(我有很多 z)。如何使这项工作没有混乱?
一种方法是在 A(B b) 或 A(string s) 中添加另一个参数,以便它们具有不同数量的参数,但这对我来说并不好。
//namespace x
using y;
public class A
{
public A(string s)
public A(B b)
}
//namespace y
public class B
{
public static explicit operator B(string s)
}
//namesapce z
using x;
public class C
{
void M()
{
string s = "";
A(s);
}
}
【问题讨论】:
-
你试过部分类吗?
-
@elyashiv 不确定部分课程有什么帮助。你能解释一下你的想法吗?
-
将
A声明为部分,并在y.dll中声明declare A(B b)。 -
@elyashiv,您不能使用分部类将类的实现拆分到多个程序集中。仅跨编译为同一程序集的多个源文件。
标签: c# .net casting constructor overloading