目录
C# 中受保护的修饰符
在 C# 中实现 Protected 的示例
示例 #1 – 没有实现子类
示例 #2 – 通过继承实现
示例 #3
受保护的内部访问修饰符
C# 中 protected 的重要性
结论
首页 后端开发 C#.Net教程 在 C# 中受保护

在 C# 中受保护

Sep 03, 2024 pm 03:28 PM
c# c# tutorial

在本文中,我们将详细了解如何在 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 用于声明字符串。现在子类是从父类派生的,并且使用继承的概念来访问受保护的成员。

输出:

在 C# 中受保护

示例 #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 用于保护成员不被类外访问。

输出:

在 C# 中受保护

我们还可以将构造函数声明为受保护的。因此,通过将任何构造函数声明为受保护,我们可以从子类中调用它。

语法:

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# 中受保护

C# 中 protected 的重要性

受保护的关键字很有用,因为这种类型的变量可以由同一类中使用的代码访问。当我们想要授予子类权限以便它可以访问父类成员时,它很有用。因此从这个意义上说,实现代码可重用性非常重要。

结论

因此我们可以将 protected 与变量一起使用,并使用继承概念来访问它们。它可以用在类本身或子类可以访问成员的地方。

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
使用 C# 的活动目录 使用 C# 的活动目录 Sep 03, 2024 pm 03:33 PM

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

C# 中的随机数生成器 C# 中的随机数生成器 Sep 03, 2024 pm 03:34 PM

C# 随机数生成器指南。在这里,我们讨论随机数生成器的工作原理、伪随机数和安全数的概念。

C# 数据网格视图 C# 数据网格视图 Sep 03, 2024 pm 03:32 PM

C# 数据网格视图指南。在这里,我们讨论如何从 SQL 数据库或 Excel 文件加载和导出数据网格视图的示例。

C# 中的阶乘 C# 中的阶乘 Sep 03, 2024 pm 03:34 PM

C# 阶乘指南。这里我们讨论 C# 中阶乘的介绍以及不同的示例和代码实现。

c#多线程和异步的区别 c#多线程和异步的区别 Apr 03, 2025 pm 02:57 PM

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

C# 中的模式 C# 中的模式 Sep 03, 2024 pm 03:33 PM

C# 模式指南。在这里,我们讨论 C# 中模式的介绍和前 3 种类型,以及其示例和代码实现。

C# 中的质数 C# 中的质数 Sep 03, 2024 pm 03:35 PM

C# 素数指南。这里我们讨论c#中素数的介绍和示例以及代码实现。

xml怎么改格式 xml怎么改格式 Apr 03, 2025 am 08:42 AM

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

See all articles