简言之,是否可以界定一个一般方法,在哪类参数(T
受限制时,限制在string
或int[]
? 在福多-C#,我想做的是:
public static int MyMethod<T> ( T arg1, T arg2 )
where T : (has an indexer that returns an int) {
// stuff with arg1[i], arg2[j], etc...
}
请注意,在C#中,由于载于<条码>>>的条码>索引er(该代码填入<>条码><>>>,加上从<条码/代码>到<条码>的默示转换,以下表述确切是指<条码><>>>/条码>是<条码>、>条码>或<条码>的同义词:
int someval = source[index];
Per the thread Constrain general extension methods to base categories and string 我认识到,我只能把没有关联的类型列入<代码>,其中T:x...... 限制条款。 http://europa-eu-un.org 遵守<代码>T: IEvidable<int>,但IE amountable<T>
并不要求实施者拥有索引,这正是我使用两种类型共同特征。
其宗旨是,我建造一些高度优化的缝.和分析功能,如快速执行达马瑙-洛文辛远程算法。 我发现,首先把我方言转换成形形形形色色体,有时会以重复性逐个处理方式(如D-L算法)加快处决速度。 这主要是因为比较<代码>int的数值比照char/code>的数值要快得多。
有时执行字。 有时会更快地直接在座标上操作,避免第一次转换和复制到<代码>int阵列的费用。 因此,除声明外,我现在有真正相同的方法。
当然,我可以使用<代码>dynamic,但从操作时间检查来看的履约惩罚完全摧毁了在建筑方法上取得的任何收益。 (I <>did>/strong> 测试。)