为什么很多.net自带的类或是结构的定义中,只有函数签名,没有具体实现的代码呀?
比如下面就是一个范型 Nullable<T> 的结构体定义代码,为何只有函数签名呀,却没有代码的具体实现。
具体的代码,如何能够看到呢?“转到定义”看不见呀。
难道在另外的文件中有函数体的具体实现,如果是的话,在哪里呢?namespace System
{
    [Serializable]
    public struct Nullable<T> where T : struct
    {
        public Nullable(T value);
        public static explicit operator T(T? value);
        public static implicit operator T?(T value);
        public bool HasValue { get; }
        public T Value { get; }
        public override bool Equals(object other);
        public override int GetHashCode();
        public T GetValueOrDefault();
        public T GetValueOrDefault(T defaultValue);
        public override string ToString();
    }
}

解决方案 »

  1.   

    使用 .NET Reflector 反编译。
      

  2.   

    可以使用微软开源的.net源码来查看。
    方法
    http://www.cnblogs.com/winkingzhang/archive/2008/02/20/1074754.html
      

  3.   

    http://www.cnblogs.com/winkingzhang/archive/2008/02/20/1074754.html可以看看
      

  4.   

    其实,没有源代码也是好事。有利于程序的交流和兼容性问题。试想,如果 System.dll 的库函数有 N 个版本,System.Web.dll 也是 N 个版本,那么程序开发、部署会遇到多么大的麻烦啊。
      

  5.   

    那个部分类的说法你可以忽视,完全是错误的。
    的确,FCL 一般只.提.供了..二..进制.的可执行代码,没有..源代码。但是,FCL有开放源代码的实现,也可能因为一些协.议在特定.人.群.中开放,也有.一部分.源.代.码开.放。但是大体.上你.的理解是.对的。