public delegate T GetObject<T>(SqlDataReader reader);
public delegate KeyValuePair<TKey, TValue> GetObject<TKey, TValue>(SqlDataReader reader);
是否有可能删除第二行(两行在连续的行中),以至于在所有方面有所改变,是否表面化?C#冗余代表
public delegate T GetObject<T>(SqlDataReader reader);
public delegate KeyValuePair<TKey, TValue> GetObject<TKey, TValue>(SqlDataReader reader);
是否有可能删除第二行(两行在连续的行中),以至于在所有方面有所改变,是否表面化?C#冗余代表
绝对 - 例如,试图声明GetObject<string,string>
类型值的任何内容都将无法编译。现在
,你当然可以取代GetObject<TKey,TValue>
任何使用与GetObject<KeyValuePair<TKey,TValue>>
(如果你明白我的意思),但你不能只是删除第二行。
您还应该注意反射使用的情况。在你的情况下,这可能不是问题,但它是一个简单的方法,可以在执行时看到变化,而不是被编译器拾取。
它可以有所作为。明确地。删除此委托定义将导致以前有效的代码成为编译错误。
var x = new GetObject<int,String>(SomeFunction);