struct结构 与 class类 的区别
结构具有以下特点:
-
结构是值类型,而类是引用类型。
-
向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。
-
与类不同,结构的实例化可以不使用 new 运算符。
-
结构可以声明构造函数,但它们必须带参数。
-
一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。
-
结构可以实现接口。
-
在结构中初始化实例字段是错误的。
--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
// CS0573.cs
namespace x
{
public class clx
{
public static void Main()
{
}
}
public struct cly
{
clx a = new clx(); // CS0573
// clx a; // OK
int i = 7; // CS0573
// int i; // OK
}
}
错误消息
“field declaration”: 结构中不能有实例字段初始值设定项不能对
--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
// CS0568.cs
public struct ClassY
{
public int field1;
public ClassY(){} // CS0568, cannot have no param constructor
// Try following instead:
// public ClassY(int i)
// {
// field1 = i;
// }
}
public class ClassX
{
public static void Main()
{
}
}
错误消息
结构不能包含显式的无参数构造函数每个
--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
posted on 2006-10-11 10:49 Clark Chan 阅读(1568) 评论(0) 编辑 收藏 举报