Nothing wrong here. No circular dependencies. Beginning of "Strategy Design Pattern" :)
using System;
interface IRoot { int Return1(); }
interface ISub : IRoot{}
class Conceret : ISub
{
private readonly IRoot _root;
public Conceret(IRoot root)
{
_root = root;
}
public int Return1() => _root.Return1();
}
public class RootClass : IRoot
{
public int Return1()
{
return 34;
}
}
public class Program
{
public static void Main()
{
Conceret con = new Conceret(
new RootClass());
Console.WriteLine(con.Return1());
}
}