如何让一个方法接受两种类型的数据作为参数?

Tgy*_*gys 1 .net c# arguments hashtable arraylist

我有一个方法,接受一个Hashtable(是的,我知道,它已经过时了......)作为参数:

public static LuaTable HashtableToLuatable(Hashtable t, int depth = 1)
Run Code Online (Sandbox Code Playgroud)

这工作正常.

现在我也想接受一个ArrayList作为第一个参数,所以你可以让't'拥有Hashtable和ArrayList的值.目前我已经两次复制粘贴方法,如下所示:

public static LuaTable ArraylistToLuatable(ArrayList t, int depth = 1)
Run Code Online (Sandbox Code Playgroud)

其余的完全相同.

我认为有一种方法可以合并它.

med*_*g15 10

这两个类都实现了ICollection接口,因此如果您的"公共代码"将对ICollection接口的定义起作用,则可以将其用于参数类型.

  • 猜猜我应该快速发布我的答案,而不是让它漂亮:) (3认同)