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
.NET CLR规范_.net_Clr_Specifications - Fatal编程技术网

.NET CLR规范

.NET CLR规范,.net,clr,specifications,.net,Clr,Specifications,我在哪里可以找到CLR的规范? 例如,我想看看如何在内存中实现对象“ThreadStart” 谢谢。不确定该规范,但是如果您想查看实现细节,您可能想使用它。这是您想要的吗 该页面包含许多指向和的链接,我所知道的最接近的是CLI规范。但是,您应该知道ECMA内存模型比.NET内存模型要弱得多。(其中.NET是Microsoft对CLI的实现。) 不过,我怀疑CLI是否特别提到了ThreadStart——这只是另一个委托。关于它,您特别感兴趣的是什么?我想了解如何在内存中构建一个类似委托的对象(其字

我在哪里可以找到CLR的规范? 例如,我想看看如何在内存中实现对象“ThreadStart”


谢谢。

不确定该规范,但是如果您想查看实现细节,您可能想使用它。

这是您想要的吗


该页面包含许多指向和的链接,我所知道的最接近的是CLI规范。但是,您应该知道ECMA内存模型比.NET内存模型要弱得多。(其中.NET是Microsoft对CLI的实现。)


不过,我怀疑CLI是否特别提到了
ThreadStart
——这只是另一个委托。关于它,您特别感兴趣的是什么?

我想了解如何在内存中构建一个类似委托的对象(其字段、方法等)。您可以使用Reflector来了解这一点,但这是特定于实现的-我不希望在规范中找到这些信息。你也应该记住,代表有一种双重性质——你可以以多播的方式观看他们,或者你可以考虑一个“行动”会有什么。您可以在Delegate.Method/Target属性和MulticastDelegate.GetInvocationList Method.CLI规范中看到这一点,这些规范仅驱动C#语言或CLR实现?CLR的ECMA规范是否与ECMA-335不同?假设我必须为windows以外的其他操作系统编写CLR实现,那么我应该遵循哪个ECMA规范?@RBT:CLI规范更多地与CLR有关,而不是与C#有关。CLR没有规范——CLR是CLI的一个实现(据我所知,这有点令人困惑)。但是是的,如果你想写另一个运行时,ECMA335如果你想用的话。