Hvorfor skal jeg oprette referencer til typer brugt i andre constructors?
Hej eksperter,Jeg har en klasse (A.cs) som kalder en af 3 constructors i en anden klasse (B.cs). De 2 øvrige constructors i B.cs er en tom constructor og en constructor som tager en parameter af typen C.cs sådan:
public class A
{
public void CallBConstructor()
{
using(B myB = new B("mystring"))
{
...
}
}
}
public class B
{
public B(){}
public B(string myString){}
public B(C myC){}
}
public class C
{
}
Alle 3 klasser ligger i hvert sit assembly. Det jeg ikke forstår er at hvis jeg i CallBConstructor kalder default constructor B() så kompilere det fint, men hvis jeg kalder B("mystring") får jeg en kopilerfejl om at jeg skal tilføje [Namespace].C som reference i A.cs. Mit spørgsmål er nu hvorfor i alverden jeg er tvunget til at tilføje en reference til en parametertype som bliver brugt i en constructor jeg slet ikke kalder!? Hvad nu hvis C.cs lå i et assembly som ikke lige var til at få fat på?