이 경우 인터페이스는 주로 개체의 변경 불가능한 인스턴스에 대한 핸들로 사용하고 있습니다. 문제는 C#의 중첩 된 인터페이스가 허용되지 않는다는 것입니다. 여기에 코드입니다 :중첩 된 인터페이스 대체 (C#에서는 불가능)
public interface ICountry
{
ICountryInfo Info { get; }
// Nested interface results in error message:
// Error 13 'ICountryInfo': interfaces cannot declare types
public interface ICountryInfo
{
int Population { get; }
string Note { get; }
}
}
public class Country : ICountry
{
CountryInfo Info { get; set; }
public class CountryInfo : ICountry.ICountryInfo
{
int Population { get; set; }
string Note { get; set; }
.....
}
.....
}
내가 대안을 찾고 있어요는, 아무도 해결책을 가지고까요?
'ICountryInfo'를 중첩하려는 특별한 이유가 있습니까? – AakashM
예, 응용 프로그램에는 동일한 이름을 가진 많은 중첩 클래스가있는 100 개 이상의 클래스가 포함되어 있습니다. 내가 그 설정을 유지한다면 훨씬 더 깨끗합니다. 인터페이스 사용에 관해서는, 그것의 불변의 대응 물을 얻는 방법입니다. 객체가 인스턴스화되면 주 응용 프로그램은 주로 종속성 주입 패턴을 사용하여 해당 인터페이스를 처리합니다. – ericdes