Implementation of FCallAddSub
本文关键字:FCallAddSub of Implementation | 更新日期: 2023-09-27 18:36:36
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void FCallAddSub(ref Decimal d1, ref Decimal d2, byte bSign);
我找不到此函数的源代码。你能帮我从它的位分量构造一个数字吗?
你可能不会找到这个的来源。 它可能是在非 C# (如 C++)中实现的,并且不会在参考源代码中找到。 这个问题深入探讨了InternalCall extern的细节:
具有 InternalCall 属性的 C# 内部静态外部 - 内部还是外部?
我推测这是一个占位符,用于允许 JIT 编译器将此调用替换为此操作的平台特定 CPU 指令。 它很可能在 CLR 本身中实现。 不过,我不是这方面的专家,所以在管道中的哪个点处理这个问题我很模糊。
当他们完成将 C# 核心源代码放在 github 上时(开源 .NET Core 框架目前正在进行中),然后您可能会找到一个实现:https://github.com/dotnet/corefx
单声道的实现
你可以在这里看看mono对Decimal
的实现,它不使用FCallAddSub
:
https://github.com/mono/mono/blob/master/mcs/class/corlib/System/Decimal.cs
它们使用在 C 中实现的函数 mono_decimalIncr
在本机代码中实现了类似的抽象,源代码可以在这里找到:
https://github.com/mono/mono/blob/ee90d5ff1d521f92c3dd9cca79b002dc4bc65ee3/mono/metadata/decimal.c