类和结构有以下几个基本的不同点:

  • 类是引用类型,结构是值类型。
  • 结构不支持继承。
  • 结构不能声明默认的构造函数。
  • 结构体中声明的字段无法赋予初值,类可以
  • 类的对象是存储在堆空间中,结构存储在栈中

选择使用情况

堆空间大,但访问速度较慢,栈空间小,访问速度相对更快。当我们描述一个轻量级对象的时候,结构可提高效率,成本更低。不过假如我们在传值的时候希望传递的是对象的引用地址而不是对象的拷贝,就应该使用类了。

例子

  1. using System;
  2. struct Books
  3. {
  4. private string title;
  5. private string author;
  6. private string subject;
  7. private int book_id;
  8. public void getValues(string t, string a, string s, int id)
  9. {
  10. title = t;
  11. author = a;
  12. subject = s;
  13. book_id = id;
  14. }
  15. public void display()
  16. {
  17. Console.WriteLine("Title : {0}", title);
  18. Console.WriteLine("Author : {0}", author);
  19. Console.WriteLine("Subject : {0}", subject);
  20. Console.WriteLine("Book_id :{0}", book_id);
  21. }
  22. };
  23. public class testStructure
  24. {
  25. public static void Main(string[] args)
  26. {
  27. Books Book1 = new Books(); /* 声明 Book1,类型为 Book */
  28. Books Book2 = new Books(); /* 声明 Book2,类型为 Book */
  29. /* book 1 详述 */
  30. Book1.getValues("C Programming",
  31. "Nuha Ali", "C Programming Tutorial",6495407);
  32. /* book 2 详述 */
  33. Book2.getValues("Telecom Billing",
  34. "Zara Ali", "Telecom Billing Tutorial", 6495700);
  35. /* 打印 Book1 信息 */
  36. Book1.display();
  37. /* 打印 Book2 信息 */
  38. Book2.display();
  39. Console.ReadKey();
  40. }
  41. }