定义:
struct MyStructName { public <Type> <TypeName>; }结构是值类型\
//声明 MyStructName name = new MyStructName(); //调用 //name.<TypeName>结构可以拥有函数
类是引用类型 定义:
class MyClass { //Class Members }编译器是不容许派生类的访问级别高于基类
abstract:不能实例化,只能继承,可以有抽象成员。 sealed:密封类,不能被继承。
构造函数: 在类实例化时需要执行的(例如对类成员的赋值)
static void Main(string[] args) { MyClass mc = new MyClass(); Console.WriteLine(mc.a); Console.ReadKey(); } class MyClass { public int a; public MyClass() { a = 10; } }析构函数: 当进行垃圾回收时,就执行析构函数中的代码,释放资源。 因为C#特有的GC机制,所以不要太去担心内存的问题。
结构是值类型,类是引用类型
static void Main(string[] args) { MyClass ca = new MyClass(); MyClass cb = ca; ca.ca = 10; cb.ca = 20; Console.WriteLine("ca.ca="+ca.ca); Console.WriteLine("cb.ca=" + cb.ca); MyStruct sa = new MyStruct(); MyStruct sb = sa; sa.sa = 10; sb.sa = 20; Console.WriteLine("sa.ca=" + sa.sa); Console.WriteLine("sb.ca=" + sb.sa); Console.ReadKey(); } class MyClass { public int ca; } struct MyStruct { public int sa; } /* 输出: ca.ca=20 cb.ca=20 sa.ca=10 sb.ca=20 */类是引用类型。在把对象赋给变量时,实际上是把带有指针的一个变量赋给了该指针所指向的对象。 下列语句是复制了地址。
MyClass cb = ca;结构是值类型。其变量并不是包含结构的指针,而是包含结构体本身。 下列语句是复制了结构体的信息。
MyStruct sb = sa;