C#中的类和结构之间有什么区别?

一种类是从中创建对象的用户定义的蓝图或原型。基本上, 一个类将字段和方法(定义动作的成员函数)组合到一个单元中。

例子:

//C# program to illustrate the
//concept of class
using System;
  
//Class Declaration
public class Author {
  
     //Data members of class
     public string name;
     public string language;
     public int article_no;
     public int improv_no;
  
     //Method of class
     public void Details( string name, string language, int article_no, int improv_no)
     {
         this .name = name;
         this .language = language;
         this .article_no = article_no;
         this .improv_no = improv_no;
  
         Console.WriteLine( "The name of the author is :  " + name
                           + "\nThe name of language is : " + language
                           + "\nTotal number of article published  " 
                           + article_no + "\nTotal number of Improvements:"
                           + " done by author is : " + improv_no);
     }
  
     //Main Method
     public static void Main(String[] args)
     {
  
         //Creating object
         Author obj = new Author();
  
         //Calling method of class
         //using class object
         obj.Details( "Ankita" , "C#" , 80, 50);
     }
}

输出如下:

The name of the author is :  Ankita
The name of language is : C#
Total number of article published  80
Total number of Improvements: done by author is : 50

一种结构体是单个单元下不同数据类型的变量的集合。它几乎类似于一个类, 因为它们都是用户定义的数据类型, 并且都包含许多不同的数据类型。

例子:

//C# program to illustrate the
//concept of structure
using System;
  
//Defining structure
public struct Car
{
  
     //Declaring different data types
     public string Brand;
     public string Model;
     public string Color;
}
  
class GFG {
  
     //Main Method
     static void Main( string [] args)
     {
  
         //Declare c1 of type Car
         //no need to create an 
         //instance using 'new' keyword
         Car c1;
  
         //c1's data
         c1.Brand = "Bugatti" ;
         c1.Model = "Bugatti Veyron EB 16.4" ;
         c1.Color = "Gray" ;
  
         //Displaying the values
         Console.WriteLine( "Name of brand: " + c1.Brand + 
                           "\nModel name: " + c1.Model + 
                           "\nColor of car: " + c1.Color);
     }
}

输出如下:

Name of brand: Bugatti
Model name: Bugatti Veyron EB 16.4
Color of car: Gray

类与结构之间的区别

结构体
类是引用类型。 结构是值类型。
所有引用类型都分配在堆内存上。 所有的值类型都分配在堆栈存储器中。
大引用类型的分配比大值类型的分配便宜。 与参考类型相比, 价值类型的分配和取消分配的成本更低。
类具有无限的功能。 结构具有有限的功能。
类通常在大型程序中使用。 在小型程序中使用结构。
类可以包含构造函数或析构函数。 结构不包含减去参数的构造函数或析构函数, 但可以包含参数化构造函数或静态构造函数。
类使用new关键字创建实例。 Struct可以创建一个带有或不带有new关键字的实例。
一个类可以从另一个类继承。 不允许Struct从另一个结构或类继承。
类的数据成员可以受到保护。 struct的数据成员无法受到保护。
该类的函数成员可以是虚拟的或抽象的。 结构的函数成员不能是虚拟的或抽象的。
类的两个变量可以包含同一对象的引用, 并且对一个变量的任何操作都可以影响另一个变量。 struct中的每个变量都包含其自己的数据副本(除了ref和out参数变量外), 并且对一个变量的任何操作都不会影响另一个变量。

来源:

https://www.srcmini02.com/69128.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?