간략한 클래스는 아래와 같습니다. 모든 네임 스페이스는 별도의 .cproj에 있습니다. z.exe를 빌드 할 때 "B가 참조되지 않은 어셈블리에 정의되었습니다"라는 문제점이 있습니다.C# 생성자 오버로드 + 명시 적 캐스팅 = .dll 참조 없음
모든 z에 y.dll을 포함하고 싶지 않기 때문에 ctor A (문자열 s)를 추가했습니다. z가 많습니다. 엉망으로이 작업을 수행하는 방법은 무엇입니까?
한 가지 방법은 A (B b) 또는 A (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
@elyashiv 부분 수업이 어떻게 도움이 될지 모르겠습니다. 아이디어에 대해 더 설명해 주시겠습니까? – watbywbarif
은 부분적으로'A'를 선언하고'y.dll'에서'A (B b)'를 선언합니다. – elyashiv