封装C#

WBOY
发布: 2024-09-03 15:05:35
原创
574 人浏览过

C#中的封装被定义为内置的C#编程语言功能,以实现封装的功能。为了理解封装功能,它被定义为将一个或多个项目包装到一个单元中,并确保它们具有逻辑或物理相似性,这就是将它们封装在一起的理由。它们被打包在一起以确保防止访问实现细节,并且通过这样做,可以防止对数据的更改。访问详细信息的唯一方法是通过类中的 getter 函数,而修改详细信息的唯一方法是通过 setter 函数。将收集的数据成员和成员函数封装到单个实体中的实体称为类。

C# 封装语法

当 sprintf 成为一种查看存储可打印消息而不是在控制台中打印消息的替代方法时,sprintf 的想法开始流行起来,以便可以根据应用程序的需要随时引用它们。 sprintf 代表“字符串打印”,这里我们将从 C 语言中的 sprintf 函数的语法角度来看一下,并了解语法中的形参或参数。

1. C# 中要封装的变量声明。

private < data type > < variable name >;
登录后复制

2.变量的Getter函数,C#封装。

get
{
return < variable name >;
}
登录后复制

3.变量的Setter函数,C#封装。

set
{
return < variable name >;
}
登录后复制

4.将在 C# 中封装的类的声明。

public class < class name >{
// Declare the elements of the public class.
}
登录后复制

C# 中的封装是如何工作的?

  • 当应用程序中的数据很容易由于任何其他人可能发生的不明显的错误而被损坏时,封装的概念就应运而生了。由于数据是面向对象编程概念中的关键元素,因此我们需要避免任何外部函数对数据的意外修改,同时还要保护数据免受任何恶意攻击。
  • 封装数据的方式是将元素定义为私有,并使其仅允许通过两种方式进行修改。我们现在将详细讨论这两种方法,以全面了解封装的工作原理。第一种方法是通过访问器和修改器。当创建一个类时,我们将一些元素设为私有,这意味着这些元素无法从类外部的元素访问。现在,我们创建两个函数,确保如果需要进行任何修改甚至检索,它们将由访问器(用于检索)和修改器(用于修改)来完成。这些函数被定义为公共函数,以便本机类之外的任何函数/类都可以访问修改器和访问器。另一种方法是使用属性,有 2 个属性 get 和 set 分别允许检索和修改元素。
  • 通过这两种方式,当通过定义包含私有元素的类的实例在另一个类中调用所需的访问器时。默认情况下,该实例包含父类(该实例所属的类)的所有公共函数。现在使用公共属性/访问器/修改器,调用所需的任务。调用后,根据任务完成的选择,为相应的任务分配检索或修改。这种工作可以被认为类似于一个组织,只有组织中的某些人可以访问财务记录(最机密的信息),如果需要检索或修改任何条目,则称为财务部门的实例并分配了相应的工作。

C# 封装示例

下面给出了 C# 封装的示例:

示例#1

尝试使用访问器和修改器访问类中的私有变量(此代码中预计会出现错误)。

代码:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string GetName() {
return name;
}
public void SetName(string n) {
name = n;
}
public string GetDept() {
return name;
}
public void SetDepartname(string d) {
dept = d;
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.name = "AmKy";
e.dept = "EduCBA";
e.Display();
Console.ReadLine();
}
}
}
登录后复制

输出:

封装C#

示例#2

使用正确的访问器和修改器类型来访问和修改类的元素。

代码:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string GetName() {
return name;
}
public void SetName(string n) {
name = n;
}
public string GetDept() {
return name;
}
public void SetDepartname(string d) {
dept = d;
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.SetName("AmKy");
e.SetDepartname("EduCBA");
e.Display();
Console.ReadLine();
}
}
}
登录后复制

输出:

封装C#

示例#3

使用属性进行封装。

代码:

using System;
namespace EmployeeApplication {
class Employee {
private string name;
private string dept;
public string DeptProp {
get {
return dept;
}
set {
dept = value;
}
}
public string EmpName {
get {
return name;
}
set {
name = value;
}
}
public void Display() {
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Department: {0}", dept);
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Employee e = new Employee();
e.EmpName = "Employee 2";
e.DeptProp = "Finance";
e.Display();
Console.ReadLine();
}
}
}
登录后复制

输出:

封装C#

结论

在本文中,我们通过示例了解了如何在 C# 中完成封装,其中我们还了解了如何从其他类访问任何私有对象,即使是通过父类的实例,也可能会导致错误和使代码无法运行。

以上是封装C#的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!