9种夏日饮品的做法:C#中关于Struct和Class的区别

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/20 16:53:23
首先请看下面的两个声明:

public struct Man
{
private int _age;
public int age
{
get{return _age;}
set{_age = value;}
}
public void addage(int i)
{
_age += i;
}
}

public class WoMan
{
private int _age;
public int age
{
get{return _age;}
set{_age = value;}
}
public void addage(int i)
{
_age += i;
}
}
一个是Struct,一个是Class,他们的使用方法一模一样
那么,Struct和Class的区别在哪里?
二者并存的理由是什么?

struct成员默认访问权限是public,而class是private,其它没什么区别。原来C语言里只有结构体struct,而且不允许在里面定义函数。后来C++对C做了扩充,并产生了class。C#是从C++来的,具体C#里是怎么实现的我不太清楚(struct 还是值类型,而 class 是对象类型),不过在C++里struct可以理解成为一种特殊的类,结构体和类可以通用,实现方法类似。但一般面向对象编程都用class,而不用struct

struct 和 class 看起来像,但完全不同。struct 还是值类型,而 class 是对象类型。