Trường tĩnh trong một lớp chung sẽ có một giá trị riêng biệt cho mỗi kết hợp các tham số chung. Do đó, có thể được sử dụng như một từ điển < Type, bất cứ điều gì >Lớp chung tĩnh như từ điển
là tốt hơn này hoặc tệ hơn là một tĩnh từ điển < Type, bất cứ điều gì >?
Nói cách khác, triển khai nào trong số những triển khai này hiệu quả hơn?
public static class MethodGen<TParam> {
public static readonly Action<TParam> Method = CreateMethod();
static Action<TParam> CreateMethod() { /*...*/ }
}
Hoặc,
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>() { /*...*/ }
}
Đặc biệt, làm thế nào CLR tra cứu các lĩnh vực tĩnh bởi tham số kiểu chung chung?
cách bạn triển khai Hành động tĩnh của mình CreateMethod ()? –
Và ngay khi tôi đang nghĩ về nó! +1 – nawfal