还有一个问题为什么说object被认为是int的教高的类型。object是个什么类型,是不是他引用什么就是什么类型?
15 个解决方案
#1
指示应用程序的 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的一个基本原则。
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的一个基本原则。
#2
关注!
#3
你对上面提到的com interop 是给什么东西。我不清楚
#4
进程内的数据访问分为:单线程和单元线程
单线程:
1.如果一个用户在访问数据,那么另一个用户的请求被阻断。
2.用户对全局数据的任何修改对于一些并不需要的用户是可见的。
单元线程:
1.其它用户的请求不会受阻
2.所有的在一个线程上创建的对象只能在自己的单元使用,消除了线程访问全局数据的冲突。
单线程:
1.如果一个用户在访问数据,那么另一个用户的请求被阻断。
2.用户对全局数据的任何修改对于一些并不需要的用户是可见的。
单元线程:
1.其它用户的请求不会受阻
2.所有的在一个线程上创建的对象只能在自己的单元使用,消除了线程访问全局数据的冲突。
#5
关注 想知道 [] 这个是个什么语法用途
#6
to studio650(张小雷):
COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。
to bborn(五六七嗒八):
[]在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>
COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。
to bborn(五六七嗒八):
[]在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>
#7
??? C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,
??? 当然也派生自Object。
上面的这段话是有错误的。
System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。
详细的请参见C#语法参考
??? 当然也派生自Object。
上面的这段话是有错误的。
System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。
详细的请参见C#语法参考
#8
万事万物皆OBJECT
#9
呵,这小的问题还有这多说法,长见识:)
#10
有道理,不过Int32虽然是结构,可也是间接从Object继承而来的:
System.Object
|
+System.ValueType
|
+System.Int16
+System.Int32
+...
至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~
System.Object
|
+System.ValueType
|
+System.Int16
+System.Int32
+...
至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~
#11
开始线程
#12
.NET 在内存管理上,值类型在堆栈上分配内存,引用类型在堆上分配内存。
有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。
有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。
#13
关注
#14
http://expert.csdn.net/Expert/topic/2661/2661366.xml?temp=.4438593
#15
多谢AhBian(阿扁)指正,我以后多注意:P
#1
指示应用程序的 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的一个基本原则。
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的一个基本原则。
#2
关注!
#3
你对上面提到的com interop 是给什么东西。我不清楚
#4
进程内的数据访问分为:单线程和单元线程
单线程:
1.如果一个用户在访问数据,那么另一个用户的请求被阻断。
2.用户对全局数据的任何修改对于一些并不需要的用户是可见的。
单元线程:
1.其它用户的请求不会受阻
2.所有的在一个线程上创建的对象只能在自己的单元使用,消除了线程访问全局数据的冲突。
单线程:
1.如果一个用户在访问数据,那么另一个用户的请求被阻断。
2.用户对全局数据的任何修改对于一些并不需要的用户是可见的。
单元线程:
1.其它用户的请求不会受阻
2.所有的在一个线程上创建的对象只能在自己的单元使用,消除了线程访问全局数据的冲突。
#5
关注 想知道 [] 这个是个什么语法用途
#6
to studio650(张小雷):
COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。
to bborn(五六七嗒八):
[]在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>
COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。
to bborn(五六七嗒八):
[]在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>
#7
??? C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,
??? 当然也派生自Object。
上面的这段话是有错误的。
System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。
详细的请参见C#语法参考
??? 当然也派生自Object。
上面的这段话是有错误的。
System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。
详细的请参见C#语法参考
#8
万事万物皆OBJECT
#9
呵,这小的问题还有这多说法,长见识:)
#10
有道理,不过Int32虽然是结构,可也是间接从Object继承而来的:
System.Object
|
+System.ValueType
|
+System.Int16
+System.Int32
+...
至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~
System.Object
|
+System.ValueType
|
+System.Int16
+System.Int32
+...
至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~
#11
开始线程
#12
.NET 在内存管理上,值类型在堆栈上分配内存,引用类型在堆上分配内存。
有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。
有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。
#13
关注
#14
http://expert.csdn.net/Expert/topic/2661/2661366.xml?temp=.4438593
#15
多谢AhBian(阿扁)指正,我以后多注意:P