В опубликованном коде довольно много ошибок, как указано в комментарии. В качестве примера ответа я сделал все проблемные места опубликованными c. Так что пока он будет компилироваться, отнеситесь к нему с недоверием и соответствующим образом настройте модификаторы доступности.
Во-первых, я создал новый интерфейс, чтобы отображать только заливку, а не сборку:
public interface IClass2Helper
{
void Fill();
}
Я внес пару небольших изменений в Class1
и Class2
, чтобы они стали компилируемый, чтобы реализовать интерфейс в Class2
и вернуть интерфейс в методе Do()
в Class1
:
public class Class1
{
private Class2 class2;
public Class1()
{
this.class2 = new Class2();
}
public IClass2Helper Do()
{
return class2.Build();
}
}
public class Class2 : IClass2Helper
{
public Class2 Build()
{
return this;
}
public void Fill() { }
}
И добавил простой тестовый класс / метод для проверки:
class TestProgram
{
static void Main()
{
var class1 = new Class1();
class1.Do().Fill(); //This line is OK
//The below line will have an error since the interface doesn't expose a Build method
class1.Do().Build();
}
}
Скрипка кода:
https://dotnetfiddle.net/5EPPfO