假设我这样做会很方便:
foo.GetColumnValues(dm.mainColumn, int)
foo.GetColumnValues(dm.mainColumn, string)
GetColumns 方法将根据传递的类型在内部调用不同的方法。
是的,我可以把它作为一个 bool 标志或类似的东西,我只是想知道是否有办法传递这个,然后问:
typeof(arg[1]) 或类似的...
我还可以覆盖方法、使用泛型等 - 我知道有不同的方法可以做到这一点,我只是好奇这是否可行。
最佳答案
有两种常见的方法。首先,你可以通过 System.Type
object GetColumnValue(string columnName, Type type)
{
// Here, you can check specific types, as needed:
if (type == typeof(int)) { // ...
这将被称为:int val = (int)GetColumnValue(columnName, typeof(int));
另一种选择是使用泛型:
T GetColumnValue<T>(string columnName)
{
// If you need the type, you can use typeof(T)...
这具有避免装箱和提供某种类型安全的优点,并且可以这样调用:int val = GetColumnValue<int>(columnName);
关于c# - 在 C# 中仅将类型作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10955579/