在 C# 中受保护
在本文中,我们将详细了解如何在 C# 中实现 protected。借助访问修饰符,我们可以限制参数和类的可访问级别。 C#中有以下访问修饰符
- 公开
- 私人
- 受保护
- 内部
C# 中受保护的修饰符
在 C# 中,我们可以使用 protected 修饰符来指定访问仅限于包含类型。此外,我们还可以将它用于从包含类派生的类型。 protected 这个词意味着它本身以及派生类都可以访问或可见。
借助此成员或类型,只能由同一类中使用的代码或派生类中使用的代码访问。 protected 关键字位于 private 和 public 修饰符之间。它与 private 修饰符几乎相同,但它允许成员访问派生类。当我们想要向父母授予对孩子财产的访问权限时,我们主要使用 protected 关键字。因此我们可以借助 protected 关键字重用逻辑。
示例:
using System; class Test { protected int _x; private int _y; } class Test1 : Test { public Test1 () { // In this we can access the variable protected int but we cannot access private int variable Console.WriteLine(this._x); } } class Program { static void Main() { Test1 b = new Test1 (); } }
考虑 2 个类,Test 和 Test1。类 Test1 派生自 Test。如果我们查看类 Test 的内部,我们可以看到已经声明了两个 int 字段。 1 个受保护,1 个私有。
在类 B Test1 中,我们可以访问 protected int,但无法访问 private int。因此 protected 修饰符为我们提供了派生类中的额外访问权限。因此,借助 protected 关键字,我们可以访问包括所有派生类在内的受保护字段。
一个类也可以被保护。下面是如何声明它的示例
语法:
public class Test { protected class Child { } }
只有在嵌套类中,我们才能将类声明为受保护的。我们无法在命名空间内定义它。
在 C# 中实现 Protected 的示例
以下示例展示了如何在 C# 中实现 protected:
示例 #1 – 没有实现子类
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProtectedExample { class demo { // String Variable declared as protected protected string name; public void print() { Console.WriteLine("\name is " + name); } } class Program { static void Main(string[] args) // main method { demo d = new demo(); Console.Write("Enter your name:\t"); d.name = Console.ReadLine(); d.print(); Console.ReadLine(); } } }
在上面的示例中,字符串被声明为受保护。该程序将引发错误,因为 protected 将对其他类隐藏其成员。所以它只能在儿童班级中使用。
示例 #2 – 通过继承实现
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProtectedExample { class Demo { protected string name = "Protected Keyword"; protected void Display(string val) { Console.WriteLine("This is " + val); } } class Program : Demo // inheritance { static void Main(string[] args) { Program program = new Program(); // Accessing protected variable Console.WriteLine("This is " + program.name); // Accessing protected function program.Display("protected example"); Console.ReadLine(); } } }
在上面的示例中,Parent 类由受保护的成员组成。 protected 用于声明字符串。现在子类是从父类派生的,并且使用继承的概念来访问受保护的成员。
输出:
示例 #3
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProtectedExample { class Parent { private String Private = "My name is John"; // string declared as private protected String Protected = "My name is Dan"; // string declared as protected } class Child : Parent // inheritance { public void Show() { Console.WriteLine(Protected); } } class Program { static int Main(string[] args) // main method { Child child = new Child(); // child object child.Show(); Console.ReadKey(); return 0; } } }
在上面的示例中,父类包含私有和受保护的字符串。子类是从父类派生的。 Show() 虽然不能访问 private,但可以访问 protected。子类对象用于调用该方法。 Protected 用于保护成员不被类外访问。
输出:
我们还可以将构造函数声明为受保护的。因此,通过将任何构造函数声明为受保护,我们可以从子类中调用它。
语法:
public class TEst : Test1 { public Test() : base() // here we can Call the protected base constructor { } }
我们无法调用受保护的方法。我们可以从派生类调用受保护的构造函数。
受保护的内部访问修饰符
在受保护的内部的帮助下,我们可以指定访问仅限于从包含类派生的当前类型。因此,这确保了成员和类型可以由同一类中的代码或另一个程序集中编写的派生类访问。
示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProtectedExample { class Demo { protected internal string name; // variable is declared as protected internal public void print() { Console.WriteLine("name is " + name); } } class Program { static void Main(string[] args) // main method { Demo d = new Demo(); Console.Write("Enter your name:\t"); // Accepting value in protected internal variable d.name = Console.ReadLine(); d.print(); Console.ReadLine(); } } }
输出:
C# 中 protected 的重要性
受保护的关键字很有用,因为这种类型的变量可以由同一类中使用的代码访问。当我们想要授予子类权限以便它可以访问父类成员时,它很有用。因此从这个意义上说,实现代码可重用性非常重要。
结论
因此我们可以将 protected 与变量一起使用,并使用继承概念来访问它们。它可以用在类本身或子类可以访问成员的地方。
以上是在 C# 中受保护的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用 C# 的 Active Directory 指南。在这里,我们讨论 Active Directory 在 C# 中的介绍和工作原理以及语法和示例。

多线程和异步的区别在于,多线程同时执行多个线程,而异步在不阻塞当前线程的情况下执行操作。多线程用于计算密集型任务,而异步用于用户交互操作。多线程的优势是提高计算性能,异步的优势是不阻塞 UI 线程。选择多线程还是异步取决于任务性质:计算密集型任务使用多线程,与外部资源交互且需要保持 UI 响应的任务使用异步。

可以采用多种方法修改 XML 格式:使用文本编辑器(如 Notepad )进行手工编辑;使用在线或桌面 XML 格式化工具(如 XMLbeautifier)进行自动格式化;使用 XML 转换工具(如 XSLT)定义转换规则;或者使用编程语言(如 Python)进行解析和操作。修改时需谨慎,并备份原始文件。
