指示应用程序的 COM 线程模型是单线程单元 (STA)。COM 线程模型只适用于使用 COM interop 的应用程序。如果将此属性应用到不使用 COM interop 的应用程序,将没有任何效果。COM 线程模型可设置为单线程单元或多线程单元。如果应用程序线程实际调用了 COM 组件,则仅为 COM interop 初始化该线程。如果没有使用 COM interop,则不初始化该线程。此属性与设置 System.Threading.Thread 的 System.Threading.ApartmentState 属性具有相同的效果。为确保线程模型在执行任何启动代码之前已被设置,请应用该属性,而不要设置 ApartmentState 属性。将此属性应用到应用程序的主方法中。注意   ASP.Net 应用程序应该将 @ Page 指令的 ASPCompat 属性设置为 true,以强制由 STA 线程池提供该页的输出服务。以上是在MSDN中查“STAThreadAttribute 类”得到的,以后预见不认识的属性(就是在中括号中的东西)都可以在属性名后加上Attribute得到实际的属性类名,然后再在MSDN中查
Object 是.Net类库中所有类的基类,也就是说.Net类库是一个“单根”结构的类库。
C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,当然也派生自Object。
另外,由于Object是所有类的基类,所以它可以用来引用任何类的实例对象。这是OO的一个基本原则。

解决方案 »

  1.   

    你对上面提到的com interop 是给什么东西。我不清楚
      

  2.   

    to studio650(张小雷):
        COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。to bborn(五六七嗒八):
        []在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>
      

  3.   

    ???    C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,
    ???    当然也派生自Object。上面的这段话是有错误的。System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。详细的请参见C#语法参考
      

  4.   

    有道理,不过Int32虽然是结构,可也是间接从Object继承而来的:
    System.Object
         |
         +System.ValueType
                |
                +System.Int16
                +System.Int32
                +...
    至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~
      

  5.   

    .NET 在内存管理上,值类型在堆栈上分配内存,引用类型在堆上分配内存。
    有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。
      

  6.   

    http://expert.csdn.net/Expert/topic/2661/2661366.xml?temp=.4438593
      

  7.   

    多谢AhBian(阿扁)指正,我以后多注意:P