[英]PHP function_exists/class_exists equivalent in C#
我正在寻找asp.net/c#中这两个函数的替代方法。
if(function_exists('foo'))
{
$returned = foo($bar);
}
if(class_exists('foo'))
{
$fooclass = new foo($bar);
}
Assembly assembly = Assembly.LoadFile("assemblyAddress");
bool containClass = assembly.GetTypes().Where(x=>x.Name == "ClassName").Count() > 0;
bool containmethod = assembly.GetTypes().Where(
x => x.GetMethods().Count(p => p.Name == "MethodName") > 0).Count() > 0;
这些函数是无关紧要的,因为C#是一种静态语言。
如果该类不存在,您将收到编译时错误。
你可能正在寻找反思。
这种事情并没有从解释和动态类型的世界转换为.NET的大量编译和强类型世界。 也就是说,还有其他方法可以实现,也许您可能想重述一下这个问题,显示您想要创建的效果。
C#中的所有函数都必须存在于类中,因此第一个示例不适用于全局函数的上下文。
对于类的情况,您将在编译时知道它是否存在:
MyClass x = new MyClass();
如果未定义MyClass
则将在编译时返回。
如果要获取属于MyClass的方法列表,可以使用Reflection :
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.