将类名作为参数传递给函数

时间:2017-12-30 02:21:24

标签: c#

是否可以在不使用typeof或初始化的情况下将ClassA作为参数传递?

class ClassA {
}

class ClassB {
     public void Function([something here] clazz) {
                  ......
     }
}

class ClassC {

     public void main() {
         ClassB asdf = new ClassB();
         asdf.Function(ClassA);   // pass like that, not typeof() or something else
     }
}

1 个答案:

答案 0 :(得分:1)

是的,您可以将类型作为通用参数传递。

class ClassA {
}

class ClassB {
    public void Function<T>() {
              ......
    }


class ClassC {
    public void main() {
        ClassB asdf = new ClassB();
        asdf.Function<ClassA>();   // magic
    }
}

这种情况在IoC容器和自动工具中很常见:

var o = container.Resolve<SomeClassName>();