在C#和其他编程语言中,结构和类用于定义自定义数据类型,我们可以根据需要使用不同类型的变量,方法等进行组织。
两者不一样。在这里,我们正在写结构和类之间的差异,它们具有以下基本差异...
类是数据类型的引用类型,结构是数据类型的值类型。
类支持默认构造函数,即我们可以设置将在创建对象时分配的默认值。结构不支持默认构造函数的概念,我们无法在创建结构对象/变量时设置诸如类之类的可以用作默认值的值。
类支持继承;结构不支持继承。
示例
在本示例中,我们将创建方法Student_1和类Student_2以及方法。要了解C#中的类和结构之间的区别,请练习给出的示例。
using System; using System.Text; namespace Test { //structure public struct student_1{ private string name; private short age; private float perc; //method public void setValue(string name, short age, float perc) { this.name= name; this.age= age; this.perc= perc; } public void dispValues() { Console.WriteLine("Name: {0}", name); Console.WriteLine("age: {0}", age); Console.WriteLine("perc: {0}", perc); } }; //class public class student_2{ private string name; private short age; private float perc; //默认构造函数 public student_2() { this.name= "N/A"; age = 0; perc = 0.0f; } //method public void setValue(string name, short age, float perc) { this.name= name; this.age= age; this.perc= perc; } public void dispValues() { Console.WriteLine("Name: {0}", name); Console.WriteLine("age: {0}", age); Console.WriteLine("perc: {0}", perc); } }; class Program { static void Main(string[] args) { //创建结构变量 student_1 std1 = new student_1(); //打印默认值 Console.WriteLine("std1 (default values)..."); std1.dispValues(); //设定值 std1.setValue("Amit", 21, 98.23f); //设置值后打印 Console.WriteLine("std1 (after setting values)..."); std1.dispValues(); Console.WriteLine(); //创建类对象 student_2 std2 = new student_2(); //defaut构造函数将被调用 //打印我们在默认构造函数中设置的值 Console.WriteLine("std2 (default values)..."); std2.dispValues(); //设定值 std2.setValue("Amit", 21, 98.23f); //设置值后打印 Console.WriteLine("std2 (after setting values)..."); std2.dispValues(); //按ENTER退出 Console.ReadLine(); } } }
输出结果
std1 (default values)... Name: age: 0 perc: 0 std1 (after setting values)... Name: Amit age: 21 perc: 98.23 std2 (default values)... Name: N/A age: 0 perc: 0 std2 (after setting values)... Name: Amit age: 21 perc: 98.23