public class Class1<t> { public Func<t> getter; public Class1(Func<t> getter) { this.getter = getter; } } public class Class2 { public Class1<bool> boolData; public Class1<int> intData; public Class1<long> longData; public Class1<float> floatData; public Class1<double> doubleData; public Class1<string> stringData; } public class Main { public Class2 data; public void TryMe<t>(Func<t> getter) { if(typeof(T) == typeof(int)) { data.intData = new Class1<int>(getter); // ABOVE LINE } else if(typeof(T) == typeof(double)) { data.intData = new Class1<double>(getter); } // and so on for bool, long, float and string } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)