指示应用程序的 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的一个基本原则。
Object 是.Net类库中所有类的基类,也就是说.Net类库是一个“单根”结构的类库。
C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,当然也派生自Object。
另外,由于Object是所有类的基类,所以它可以用来引用任何类的实例对象。这是OO的一个基本原则。
COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。to bborn(五六七嗒八):
[]在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>
??? 当然也派生自Object。上面的这段话是有错误的。System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。详细的请参见C#语法参考
System.Object
|
+System.ValueType
|
+System.Int16
+System.Int32
+...
至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~
有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。