public static void Main()
if(test is ITest castedTest)
Console.WriteLine(castedTest.GetCode().Id);
Console.WriteLine(castedTest.Code.Name);
Console.WriteLine("Hello World");
public class Test : IItest
public CodeType Code => CodeType.CodeType2;
public CodeType GetCode(){ return CodeType.CodeType2;}
public interface IItest : ITest
public new CodeType GetCode()
return CodeType.CodeType1;
public static CodeType CodeType1 => new CodeType(1, "first");
public static CodeType CodeType2 => new CodeType(2, "second");
public int Id {get; set;}
public string Name {get; set;}
public CodeType(int id, string name)