static void Main(string[] args) { var l1 = new Logger(); l1.Value = "foo"; l1.Save(); var l2 = new Logger2(); l2.Value = 123; l2.Save(); #region after Generics //var l1 = new GenericLogger<string>(); //l1.Value = "foo"; //l1.Save(); //var l2 = new GenericLogger<int>(); //l2.Value = 123; //l2.Save(); #endregion Console.ReadLine(); }