C#中Struct与Class的区别

  1. class 是引用类型,structs是值类型 既然class是引用类型,class可以设为null。但是我们不能将struct设为null,因为它是值类型。
  2. 当你实例化一个class,它将创建在堆上。而你实例化一个struct,它将创建在栈上 
  3. 你使用的是一个对class实例的引用。而你使用的不是对一个struct的引用。(而是直接使用它们)当我们将class作为参数传给一个方法,我们传递的是一个引用。struct传递的是值而非引用。
  4. structs 不可以有初始化器,class可以有初始化器。
  5. Classes 可以有明显的无参数构造器,但是Struct不可以
  6. class支持继承和多态,Struct不支持. 注意:但是Struct 可以和类一样实现接口
  7. 既然Struct不支持继承,其成员不能以protected 或Protected Internal 修饰、Class的构造器不需要初始化全部字段,Struct的构造器必须初始化所有字段
  8. Class可以定义析构器,但是Struct不可以
  9. Class比较适合大的和复杂的数据,Struct适用于作为经常使用的一些数据组合成的新类型。
     

适用场合:Struct有性能优势,Class有面向对象的扩展优势。
用于底层数据存储的类型设计为Struct类型,将用于定义应用程序行为的类型设计为Class。如果对类型将来的应用情况不能确定,应该使用Class。


 

 public static void structtaker(TheStruct s)
    {
        s.x = 5;
    }
    public static void classtaker(TheClass c)
    {
        c.x = 5;
    }
    public static void Main()
    {
        TheStruct a = new TheStruct();
        TheClass b = new TheClass();
        a.x = 1;
        b.x = 1;
        structtaker(a);
        classtaker(b);
        Console.WriteLine("a.x = {0}", a.x);
        Console.WriteLine("b.x = {0}", b.x);
        Console.Read();
    }

输出结果 由于类是引用类型,所以classtaker中以是以new object,

 

以下是struct中常用错误

 

public struct CommonStructError {   

 public int Age= 10; // syntax error.   不允初始化  public string Name;

  public void CommonStructError ( ) //不许无参构造函数  {  }     public void CommonStructError (int age) //有参数构造函数 所有属性必须全部初始化  {   Age=age;  }   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
信息数据从传统到当代,是一直在变革当,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的高校科研信息管理系统实现了操作日志管理、字典管理、反馈管理、公告管理、科研成果管理、科研项目管理、通知管理、学术活动管理、学院部门管理、科研人员管理、管理员管理等功能。系统用到了关系型数据库王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让高校科研信息管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值