一种类是从中创建对象的用户定义的蓝图或原型。基本上, 一个类将字段和方法(定义动作的成员函数)组合到一个单元中。
例子:
//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 :AnkitaThe name of language is : C#Total number of article published80Total 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);
}
}
【C#中的类和结构之间有什么区别()】输出如下:
Name of brand: BugattiModel name: Bugatti Veyron EB 16.4Color of car: Gray
类与结构之间的区别
类 | 结构体 |
---|---|
类是引用类型。 | 结构是值类型。 |
所有引用类型都分配在堆内存上。 | 所有的值类型都分配在堆栈存储器中。 |
大引用类型的分配比大值类型的分配便宜。 | 与参考类型相比, 价值类型的分配和取消分配的成本更低。 |
类具有无限的功能。 | 结构具有有限的功能。 |
类通常在大型程序中使用。 | 在小型程序中使用结构。 |
类可以包含构造函数或析构函数。 | 结构不包含减去参数的构造函数或析构函数, 但可以包含参数化构造函数或静态构造函数。 |
类使用new关键字创建实例。 | Struct可以创建一个带有或不带有new关键字的实例。 |
一个类可以从另一个类继承。 | 不允许Struct从另一个结构或类继承。 |
类的数据成员可以受到保护。 | struct的数据成员无法受到保护。 |
该类的函数成员可以是虚拟的或抽象的。 | 结构的函数成员不能是虚拟的或抽象的。 |
类的两个变量可以包含同一对象的引用, 并且对一个变量的任何操作都可以影响另一个变量。 | struct中的每个变量都包含其自己的数据副本(除了ref和out参数变量外), 并且对一个变量的任何操作都不会影响另一个变量。 |
推荐阅读
- CMMS和ERP之间有什么区别()
- &&和;之间的区别-Linux中的链接运算符
- C语言和Objective-C有什么区别()
- C语言和C#之间有什么区别()
- Java中抽象类和接口之间的区别
- C#中抽象类和接口之间的区别
- 算法-差异数组(O(1)时间范围更新查询)
- 32位和64位操作系统之间的区别
- AES和DES密码之间有什么区别()