Call ToString on generic type
using System; using System.Collections.Generic; using System.Text; public class HelloGenerics<T> { private T _thisTalker; public T Talker { get { return this._thisTalker; } set { this._thisTalker = value; } } public void SayHello() { string helloWorld = _thisTalker.ToString(); Console.WriteLine(helloWorld); } } public class GermanSpeaker { public override string ToString() { return "GermanSpeaker!"; } } public class SpainishSpeaker { public override string ToString() { return "SpainishSpeaker"; } } public class EnglishSpeaker { public override string ToString() { return "EnglishSpeaker"; } } class Program { static void Main(string[] args) { HelloGenerics<GermanSpeaker> talker1 = new HelloGenerics<GermanSpeaker>(); talker1.Talker = new GermanSpeaker(); talker1.SayHello(); HelloGenerics<SpainishSpeaker> talker2 = new HelloGenerics<SpainishSpeaker>(); talker2.Talker = new SpainishSpeaker(); talker2.SayHello(); } }