认识c#中结构类型

来源:互联网 发布:域名备案代办 编辑:程序博客网 时间:2024/06/05 09:26

结构类型的定义

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

 

Public struct  people

{

String  name;

Int   age;

}

 

结构类型与类的区别:

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

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

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


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

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

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

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

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

 

结构类型的使用例子

结构的定义

public structPeopleStruct

    {

        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();

 

        }

 

总结

总之,结构类型用的是栈存储,类用的堆存储。对于两个结构变量如果互相赋值,修改其中一个,不影响另外一个数值。但是如果对于两个类的实例化对象的互相赋值,吸怪其中一个,就会影响到另外一个了,因为两者用的是同一个引用,在堆里操作的是同一个对象。

0 0
原创粉丝点击