学习C#之Structure
在我开始学习C#的structure时有个疑问,已经有了类为何还要用结构?
- Understand the value type & reference type
structure是值类型(Value type),class是引用类型(Reference type)
而对于我这种对这种概念经常混淆的人,看到这两个词,嗯。。。这是什么?于是我去查查查~
值类型:
单元直接存放“有效值“,简单的说就是箱子里放个皮球。
structure就是箱子,专门用来放皮球的。
例如:int value1=3;
引用类型:
单元放的是另外一个对象的引用(地址) ,简单的理解就是箱子里面放的是皮球的地址。告诉你皮球放在哪里而不是放的皮球本身
例如:
Books book1=new Books(); - Structure不支持继承
- Structure 不能声明默认的构造函数
a. 结构不能包含显式的无参数构造函数。结构成员讲自动初始化为它们的默认值。
b. 结构不能包含以下形式的初始值设定类:base(argument-list);
宝宝有疑问什么时候用structure呢?
结构在堆栈中创建,是值类型,而类是引用类型。每当需要一种经常使用的类型,而且大多数情况下该类型只是一些数据时,使用结构能比使用类获得更佳性能。- [引用于某博主的话]
这是一段很容易懂的代码
using System;
struct Books
{
private string title;
private string author;
private string subject;
private int book_id;
public void getValues(string t, string a, string s, int id)
{
title = t;
author = a;
subject = s;
book_id = id;
}
public void display()
{
Console.WriteLine("Title : {0}", title);
Console.WriteLine("Author : {0}", author);
Console.WriteLine("Subject : {0}", subject);
Console.WriteLine("Book_id :{0}", book_id);
}
/*属于我们structure的构造函数!*/
};
public class testStructure
{
public static void Main(string[] args)
{
Books Book1 = new Books(); /* 声明 Book1,类型为 Book */
Books Book2 = new Books(); /* 声明 Book2,类型为 Book */
/* book 1 详述 */
Book1.getValues("C Programming",
"Nuha Ali", "C Programming Tutorial",6495407);
/* book 2 详述 */
Book2.getValues("Telecom Billing",
"Zara Ali", "Telecom Billing Tutorial", 6495700);
/* 打印 Book1 信息 */
Book1.display();
/* 打印 Book2 信息 */
Book2.display();
Console.ReadKey();
}
}
谢谢亲们围观,若有不足请指出。
NoHello_Kitty的第一篇学术博客。