0
点赞
收藏
分享

微信扫一扫

c#中结构与类的区别


类与结构的实例比较

  类与结构的差别

  如何选择结构还是类

  一.类与结构的示例比较:

  结构示例: 

   public struct Person
  {

  string Name;



  int  weight

软件开发网 www.mscto.com



  //implement something


  }


  }
 

软件开发网 www.mscto.com

  类示例:

   public class TestTime
  {



软件开发网 www.mscto.com


  public void passtime()

  {
 



   //implementation of behavior
  }

  }
 

  调用过程:

   public class Test
  {

  public static ovid Main

软件开发网 www.mscto.com



  }


  }
 

  从上面的例子中我们可以看到,类的声明和结构的声明非常类似,只是限定符后面是 struct 还是 class 的区别,而且使用时,定义新的结构和定义新的类的方法也非常类似。那么类和结构的具体区别是什么呢?





软件开发网 www.mscto.com

  因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用


  注:

  1.虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的基类型都是object



  结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed声明,可是结构是隐式的sealed .

  类:完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被继承



 



   interface IImage
  {
  void Paint();
  }
  struct Picture : IImage
  {
  public void Paint()
  {
  // painting code goes here
  }
  private int x, y, z;  // other struct members
  }
 


  3.内部结构:



  没有析构函数


  不能有protected 修饰符


  可以不使用new 初始化


  在结构中初始化实例字段是错误的



  有析构函数


  有protected 修饰符



  三.如何选择结构还是类


  1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些




  4.大多数情况下该类型只是一些数据时,结构是最佳的选择

举报

相关推荐

0 条评论