Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# FEATURE\u PAL编译器指令在.net 4源代码中的含义是什么_C#_.net - Fatal编程技术网

C# FEATURE\u PAL编译器指令在.net 4源代码中的含义是什么

C# FEATURE\u PAL编译器指令在.net 4源代码中的含义是什么,c#,.net,C#,.net,我在理解.NET4.0源代码中FEATURE_-PAL编译器指令的含义时遇到问题。它几乎用于访问非托管代码的每个类。PAL=平台适配层。它首先是CLR的一个细节,将其与操作系统实现隔离开来。您将在.NET4类源代码的参考源代码副本中看到它的使用。它出现在任何对底层操作系统实现有强烈依赖性的代码中,绕过此类代码,因为它不能在Windows以外的操作系统上工作。您可能熟悉使用DEBUG和RELEASE指令包装特定于测试/生产代码的代码块 NET 4.0框架使用FEATURE\u PAL编译器指令在较

我在理解.NET4.0源代码中FEATURE_-PAL编译器指令的含义时遇到问题。它几乎用于访问非托管代码的每个类。

PAL=平台适配层。它首先是CLR的一个细节,将其与操作系统实现隔离开来。您将在.NET4类源代码的参考源代码副本中看到它的使用。它出现在任何对底层操作系统实现有强烈依赖性的代码中,绕过此类代码,因为它不能在Windows以外的操作系统上工作。

您可能熟悉使用DEBUG和RELEASE指令包装特定于测试/生产代码的代码块

NET 4.0框架使用FEATURE\u PAL编译器指令在较新的平台上执行代码。它必须通过调用本机DLL中的本机方法来适应平台。因此,该功能的名称为:“平台适应层”

我在看了Process类的代码后发现了这篇文章。可以想象,在给定的平台上,杀死一个进程的工作方式是不同的

想象一下,您的代码运行在使用ARM处理器的设备上安装的较新版本的Windows上。在终止进程时,您需要在为该平台定制的本机dll中调用方法


因此,在为此类平台编译框架时,FEATURE_PAL编译器指令被设置为“条件编译符号”

嗯。NET4.0源代码?你的意思是,比如,标题?从.NET Framework参考源代码来看,现在的名称FEATURE\u MACL似乎是FEATURE\u PAL的同义词。