一种类是从中创建对象的用户定义的蓝图或原型。基本上, 一个类将字段和方法(定义动作的成员函数)组合到一个单元中。
例子:
//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参数变量外), 并且对一个变量的任何操作都不会影响另一个变量。 |
评论前必须登录!
注册