【发布时间】:2012-06-12 21:51:01
【问题描述】:
假设我这样做会很方便:
foo.GetColumnValues(dm.mainColumn, int)
foo.GetColumnValues(dm.mainColumn, string)
GetColumns 方法将根据传递的类型在其中调用不同的方法。
是的,我可以将其用作布尔标志或类似的,我只是想知道是否有办法通过这个,然后问:
typeof(arg[1]) 或类似...
我还可以覆盖该方法,使用泛型等 - 我知道有不同的方法可以做到这一点,我只是好奇这是否可行。
【问题讨论】:
-
我的想法完全正确,这取决于 foo 实际上是什么。
foo.GetColumnValues<int>(dm.mainColumn)可能是要走的路。 -
正如我所说,我意识到还有其他方法可以做到这一点(布尔标志、泛型、覆盖方法)我只是想知道它是否可以作为参数。
-
@MarkMayo:我不明白这个问题,如果你 “知道你也可以重写方法、使用泛型等,而且你知道有不同的方法可以做到这一点,你只是好奇这是否可能”。所以你知道这一切,但你很好奇这是否可能??
-
@TimSchmelter - 以我描述的形式。即将它作为第二个参数传递。事实证明,Reed 有点说出了我所追求的 - 你在哪里使用(...,类型类型)。这就是我一直在寻找的。span>
-
好问题,赞成,我看到 MS 使用 Type 作为 VB.NET 中内置运算符的参数,例如trycast,并且经常希望我可以自己在 C#/VB 中做到这一点——按照你描述的方式。
标签: c# types methods parameters