我想请问一下为什么struct可以定义静态的变量.可以定义静态的构造方法.
struct不是存放在栈中的么.它也没有类型对象也没有同步块索引.那这些静态成员是存放在哪里的.
它的方法又是在哪里的.

解决方案 »

  1.   

    跟class没有不同,也是存在类描述数据里面。
      

  2.   

    你们指的是元数据表吗?
    我的意思是问
    如:struct myStruct
    {
    public static A a = new A();
    static myStruct(){}
    public static void Method1(){}
    public void Method2(){}
    }在堆栈中是怎么表示的.
      

  3.   

    定义而已 用不到堆栈~
    不知道你是不是在 值类型是在堆栈中的那些概念
    堆栈的特点就是先入后出 后入先出罗在堆栈中是怎么表示的. 
    一大堆1和0可以看看《clr via C#》这本书~
      

  4.   

    我就是看了clr via c#这本书.不太懂.所以在这里问一问.
      

  5.   

    堆栈和栈是软件在运行时候才会产生的~该书提到了一个词 类类型对象 注意不是对象~
    当类型第一次被使用的时候就加载到内存中产生类类型对象
    这个类类型对象描述着你如何定义一个类或结构或....
    每个类型 无论是类还是结构 只要你定义了自己的方法
    都有自己的方法列表 所以存放在类类型对象哪里
    而.net中的反射 就是读取类类型对象他有什么成员 什么方法的概念其他语言特别是底层语言,
    比如你定义了
    public void HelloWorld(){....}
    在运行的时候只知道在从某个位置开始运行,完全不知道你定义了方法名称叫HelloWorld