KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
A static field in a generic class will have a separate value for each combination of generic parameters. It can therefore be used as a Dictionary<Type, whatever > Is this better or worse than a static Dictionary<Type, whatever >? In other words, which of these implementations is more efficient? public static class MethodGen<TParam> { public static readonly Action<TParam> Method = CreateMethod(); static Action<TParam> CreateMethod() { /*...*/ } } Or, public static class MethodGen { static readonly Dictionary<Type, Delegate> methods = new Dictionary<Type, Delegate>(); public static Action<T> GetMethod<T>() { //In production code, this would ReaderWriterLock Delegate method; if(!methods.TryGetValue(typeof(T), out method) methods.Add(typeof(t), method = CreateMethod<T>()); return method; } static Action<T> CreateMethod<T>() { /*...*/ } } In particular, how does the CLR lookup the static fields by generic type parameter?
Tags (comma-separated)
Save Edits
Cancel