public static void Main()
var isGenericBar = myFoo is IBar<string>;
Console.WriteLine(isGenericBar);
var GenericBar = myFoo as IBar<string>;
var GenericParentBar = myFoo as IBar<object>;
Console.WriteLine(GenericBar);
Console.WriteLine(GenericParentBar);
public class Foo : IBar<string>, INonGenericBar
public bool IsGeneric => true;
public bool IsNonGeneric => true;
public interface IBar<out T>
public interface INonGenericBar