个性化阅读
专注于IT技术分析

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参数变量外), 并且对一个变量的任何操作都不会影响另一个变量。

赞(0)
未经允许不得转载:srcmini » C#中的类和结构之间有什么区别?

评论 抢沙发

评论前必须登录!