Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PHP函数_exists/class_exists在C中是等价的#_C#_Php_Asp.net - Fatal编程技术网

C# PHP函数_exists/class_exists在C中是等价的#

C# PHP函数_exists/class_exists在C中是等价的#,c#,php,asp.net,C#,Php,Asp.net,我正在asp.net/c#中寻找这两个函数的替代方法 这些函数是不相关的,因为C#是一种静态语言。 如果该类不存在,则会出现编译时错误 您可能正在寻找反射。这种事情不会从解释型和动态类型的世界转换到.NET的大量编译型和强类型世界。也就是说,还有其他方法可以达到这一目的,也许你需要重申一个问题,说明你想要创建什么效果。C#中的所有函数都必须存在于一个类中,因此第一个示例不适用于全局函数的上下文 对于类,您将在编译时知道它是否存在: MyClass x = new MyClass(); 如果未定

我正在asp.net/c#中寻找这两个函数的替代方法


这些函数是不相关的,因为C#是一种静态语言。
如果该类不存在,则会出现编译时错误


您可能正在寻找反射。

这种事情不会从解释型和动态类型的世界转换到.NET的大量编译型和强类型世界。也就是说,还有其他方法可以达到这一目的,也许你需要重申一个问题,说明你想要创建什么效果。

C#中的所有函数都必须存在于一个类中,因此第一个示例不适用于全局函数的上下文

对于类,您将在编译时知道它是否存在:

MyClass x = new MyClass();
如果未定义
MyClass
,则将在编译时返回


如果您想获得属于MyClass的方法列表,可以使用:

此代码可用于在运行时检查,无需编译。我说得对吗?@PeachLabs,它可以在运行时使用,我不知道你在说什么编译,运行前的每一个代码都需要编译。我正在尝试开发一个像wordpress这样的插件框架,以便获得最好的解决方案。
MyClass x = new MyClass();
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;