C#中的结构和类之间的区别

C#类和结构

在C#和其他编程语言中,结构和类用于定义自定义数据类型,我们可以根据需要使用不同类型的变量,方法等进行组织。

两者不一样。在这里,我们正在写结构和类之间的差异,它们具有以下基本差异...

C#类和C#结构之间的差异

  1. 类是数据类型的引用类型,结构是数据类型的值类型。

  2. 类支持默认构造函数,即我们可以设置将在创建对象时分配的默认值。结构不支持默认构造函数的概念,我们无法在创建结构对象/变量时设置诸如类之类的可以用作默认值的值。

  3. 类支持继承;结构不支持继承。

示例

在本示例中,我们将创建方法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

以上是 C#中的结构和类之间的区别 的全部内容, 来源链接: utcz.com/z/321449.html

回到顶部