c# general category "specialized" constructor
i have category following:
public category dropdowncontrol<t, key, value> : basecontrol
where key: icomparable
{
private ienumerable<t> menumerator;
private func<t, key> mgetkey;
private func<t, value> mgetvalue;
private func<key, bool> miskeyincollection;
open dropdowncontrol(string name, ienumerable<t> enumerator, func<t, key> getkey, func<t, value> getvalue, func<key, bool> iskeyincollection)
: base(name)
{
menumerator = enumerator;
mgetkey = getkey;
mgetvalue = getvalue;
miskeyincollection = iskeyincollection;
}
and i wish supplement preference duty dictionaries (because support operations good own).
but problem such constructor wholly mention pivotal value nonetheless t directly, nonetheless t only keyvaluepair. there proceed tell compiler constructor t keyvaluepair, like:
public dropdowncontrol<keyvaluepair<key, value>>(string name, idictionary<key, value> dict) { ... }
currently i stationary emanate duty workaround, nonetheless i proceed constructor better.
public stationary dropdowncontrol<keyvaluepair<dkey, dvalue>, dkey, dvalue> create<dkey, dvalue>(string name, idictionary<dkey, dvalue> dictionary)
where dkey: icomparable
{
relapse new dropdowncontrol<keyvaluepair<dkey, dvalue>, dkey, dvalue>(name, dictionary, kvp => kvp.key, kvp => kvp.value, pivotal => dictionary.containskey(key));
}
Comments
Post a Comment