带有修饰符和方法

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

类和结构的不同

  • 类是引用类型,结构是值类型。
  • 结构不支持继承。
  • 结构不能声明默认的构造函数。

值类型的变量直接存储数据,分配在托管栈中。变量会在创建它们的方法返回时自动释放,例如在一个方法中声明Char型的变量name=’C’,当实例化它的方法结束时,name变量在栈上占用的内存就会自动释放
C#的所有值类型均隐式派生自System.ValueType。
结构体:struct(直接派生于System.ValueType)

引用类型包括:数组,用户定义的类、接口、委托,object,字符串,null类型,类。
引用类型的变量持有的是数据的引用,数据存储在数据堆,分配在托管堆中,变量并不会在创建它们的方法结束时释放内存,它们所占用的内存会被CLR中的垃圾回收机制释放。