1、结构体中声明的字段无法赋予初值,类可以:
struct test001
{
private int aa = 1;
}
//上代码将出现“结构中不能实例属性或字段初始值设定”的报错,而类中无此限制
----------
using System;
using System.Text;
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);
}
};
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();
}
}
---------类中无此限制,代码如下:class test002
{
private int aa = 1;
}
2、结构体的构造函数中,必须为结构体所有字段赋值,类的构造函数无此限制
3、类是引用类型,结构是值类型。
4、结构不支持继承。
5、结构不能声明默认的构造函数。