解释一下C#中类的概念

2023年 8月 29日 48.6k 0

类是 C# 中的基本类型之一。我们可以将类视为与问题域相关的对象的蓝图。它是我们创建对象的模板,定义了从此类创建的对象集将共享的结构和行为。简单来说,类是一个 cookie-cutter,而对象就是 cookie 本身。

类还支持封装,这是面向对象编程中的一个重要概念。这意味着将数据和处理数据的操作组合在一个地方,并为该对象的用户提供一个简单的 API。类允许我们封装数据,并对其他类隐藏不相关的细节。

我们可以使用 class 关键字,后跟类的名称来创建一个类。

// User.cs
public class User{
private string name;
private int salary;
public void Promote(){
salary += 1000;
}
}

登录后复制

在上面的例子中,User是一个代表用户的类。该类封装了两部分数据 - name 和 salary。这些被称为类字段,包含用户的姓名和工资。它还具有一个名为 Promote() 的方法,用于提高用户的工资。

每个类都有一个关联的访问修饰符,用于控制该类是否将对其他类可见。以下是我们可以为访问修饰符提供的五个可能值。

访问修饰符 描述 th>
公开 无限制访问
受保护 对派生类的有限访问
内部 对程序集的有限访问
受保护的内部 对程序集或派生类的访问受到限制
私有 禁止外部访问

要创建类的实例,我们可以使用new关键字。 new 运算符计算对象数据所需的字节数并为对象分配内存。然后它返回一个指向新创建的对象的指针(也称为引用)。

var alice = new User();
var bob = new User();

登录后复制

然后,将此引用存储在等号左侧的变量中。在上面的示例中,Alice和Bob保存对新创建的对象的引用或指针。

解释一下C#中类的概念

在C#中,类的命名约定遵循PascalCase,即将复合词中的每个单词的首字母大写,例如StringBuilder,UserController等。不需要在文件中创建与类名匹配的类。然而,大多数C#项目都使用了这种约定。

构造函数

在上面的示例中,当我们创建User类的实例(即alice和bob)时,我们没有提供它们的初始名称和工资。通常,新创建的对象需要一些信息来完成其工作,构造函数用于初始化类的数据。

我们可以添加一个构造函数来为用户指定名称和工资,如下所示:

public class User{
private string name;
private int salary;
public User(string name, int salary){
this.name = name;
this.salary = salary;
}
public void Promote(){
salary += 1000;
}
}

登录后复制

拥有构造函数使我们能够在创建新实例时传递用户的姓名和薪水。

var alice = new User("Alice", 50000);
var bob = new User("Bob", 45000);

登录后复制

一个类中可以有多个构造函数。拥有多个构造函数允许我们以不同的方式初始化类。例如,我们可以添加另一个构造函数,该构造函数仅采用用户名并分配默认工资。

public User(string name){
this.name = name;
this.salary = 50000;
}

登录后复制

Example

实例演示

using System;
class Program{
static void Main(){
var alice = new User();
alice.Print();

var bob = new User();
bob.Print();
var chris = new User("Chris", 50000);
chris.Print();
var debs = new User("Debs", 45000);
debs.Print();

var scott = new User("Scott");
scott.Print();
}
}
public class User{
private string name;
private int salary;
public User(){

}
public User(string name){
this.name = name;
this.salary = 50000;
}
public User(string name, int salary){
this.name = name;
this.salary = salary;
}
public void Promote(){
salary += 1000;
}
public void Print(){
Console.WriteLine($"{name}: {salary}");
}
}

登录后复制

输出

: 0
: 0
Chris: 50000
Debs: 45000
Scott: 50000

登录后复制

以上就是解释一下C#中类的概念的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论