繁体   English   中英

PHP函数中的PHP function_exists / class_exists等效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM