今天在看。net的一些系统函数源代码,看到 public static class System.Math 类
里面关于三角函数定义如下,看不到具体的源代码了。但他好像不是引用那些DLL。
大家说说他是什么意思,下面是 Abs 函数定义的片段(用Reflector反编译)
public static class Math
{
// Methods
static Math(); public static decimal Abs(decimal value);
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern double Abs(double value);
public static short Abs(short value);
public static int Abs(int value);
public static long Abs(long value);
[CLSCompliant(false)]
public static sbyte Abs(sbyte value);
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern float Abs(float value);那些extern 函数,都没有被反编译出来,那么它是外部的引用吗?
里面关于三角函数定义如下,看不到具体的源代码了。但他好像不是引用那些DLL。
大家说说他是什么意思,下面是 Abs 函数定义的片段(用Reflector反编译)
public static class Math
{
// Methods
static Math(); public static decimal Abs(decimal value);
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern double Abs(double value);
public static short Abs(short value);
public static int Abs(int value);
public static long Abs(long value);
[CLSCompliant(false)]
public static sbyte Abs(sbyte value);
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern float Abs(float value);那些extern 函数,都没有被反编译出来,那么它是外部的引用吗?
{
int abs = num;
int tmp = num;
tmp = tmp >> 31;
abs = abs ^ tmp;
return abs - tmp;
}
managed implementation. The