您的位置:首页 > 编程语言 > C#

认识c#中结构类型

2016-03-09 13:35 239 查看

结构类型的定义

结构类型是用户自定义的数据类型,可以说是一个简化版的类。在这个类型里可以包含属性还有方法。定义举例:

Public struct people

{

String name;

Int age;

}

结构类型与类的区别:

1.结构是值类型,而类是引用类型;

2.结构的实例化可以不使用new 运算符;

3.结构不具有类的继承特点;

类和结构类型试用场合的对比:

结构和类的适用场合分析:

  1、当堆栈的空间很有限,且有大量的逻辑对象时,创建类要比创建结构好一些;

  2、对于点、矩形和颜色这样的轻量对象,使用结构的成本较低;

3、在表现抽象和多级别的对象层次时,类是最好的选择,因为结构不支持继承。

结构类型的使用例子

结构的定义

public struct
PeopleStruct
{
public
string Name;
public int Age;
}

类的定义

public class
PeopleClass
{
public
string Name;
public int Age;
}

主函数

static void Main(string[] args)
{
PeopleStructp1, p2;
//与类一样,但可以不new
p1.Name = "小明";
p1. Age = 10;

p2 = p1; //将p1的值赋给p2 //由于是值类型,因此赋值等于将全部值全部复制到p2的栈空间
p2.Name = "小刚";
//然后修改p2的值看是否会影响p1
Console.WriteLine(p1.Name);
//输出小明

PeopleClassp3 =
new PeopleClass();
p3.Name = "小明";

PeopleClassp4 =
new PeopleClass();
p4 = p3; //将p3的值赋给p4
赋值后,由于是引用类型,因此两个对象指向的是同一个地址(堆空间)
p4.Name = "小刚";
//然后修改p4的值看是否会影响p3
Console.WriteLine(p3.Name);
//输出小刚

Console.ReadKey();

}

总结

总之,结构类型用的是栈存储,类用的堆存储。对于两个结构变量如果互相赋值,修改其中一个,不影响另外一个数值。但是如果对于两个类的实例化对象的互相赋值,吸怪其中一个,就会影响到另外一个了,因为两者用的是同一个引用,在堆里操作的是同一个对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: