假设我有一个类 ( ClassA
),其中包含一个调用另一个类的构造函数的方法,如下所示:
public class ClassA
{
public void CallClassBConstructor()
{
using(ClassB myB = new ClassB()) {...}
}
}
该类ClassB
如下所示:
public class ClassB : IDisposable
{
public ClassB(){}
public ClassB(string myString){}
public ClassB(ClassC myC){}
public void Dispose() {...}
}
...而且ClassC
更简单:
public class ClassC{}
如果我将这些类放在它们自己的程序集中并编译整个解决方案,我不会收到任何错误。但是如果我用这个替换 using 语句:
using(ClassB myB = new ClassB("mystring")){...}
[mynamespace].ClassC
我收到一个编译错误,要求我添加对in的引用ClassA
。由于我根本没有调用ClassB(ClassC myC)
,这对我来说毫无意义 - 为什么我必须包含其他构造函数的类型,而不管我是否使用它们?如果ClassC
包含在许可或难以获取的程序集中怎么办?这是开发人员应该避免的不良设计示例,还是我在这里遗漏了什么?