首页 > 后端开发 > C++ > C# 如何实现类似于 C 的'Friend”关键字对私有成员的受控访问的功能?

C# 如何实现类似于 C 的'Friend”关键字对私有成员的受控访问的功能?

Susan Sarandon
发布: 2024-12-28 18:46:10
原创
935 人浏览过

How Does C# Achieve Functionality Similar to C  's

C# 中的 Friend 关键字

在面向对象编程中,“friend”关键字提供对某些类的私有类成员的受控访问。虽然 C 提供了“friend”关键字,但 C# 缺乏此功能的直接等效项。

替代方案:InternalsVisibleTo

C# 利用 InternalsVisibleTo 属性来实现对 private 的有限访问成员,主要用于测试目的。此属性将程序集或命名空间指定为受信任,从而允许它们访问对外部代码隐藏的内部成员。

示例

请考虑 AssemblyInfo.cs 中的以下示例:

[assembly: InternalsVisibleTo("OtherAssembly")]
登录后复制

此属性使程序集可供“OtherAssembly”访问。现在可以从“OtherAssembly”访问程序集中标记为内部的任何方法或属性。

测试中的使用

InternalsVisibleTo 属性在单元测试中特别有用场景。通过将程序集标记为测试程序集的 InternalsVisibleTo,私有成员可以出于测试目的而访问,同时对其他外部代码保持隐藏。

注意事项

虽然 InternalsVisibleTo 提供了一种机制对于受控访问,它与 C“friend”关键字有几个不同之处方式:

  • 它需要在 AssemblyInfo.cs 中显式声明。
  • 它适用于程序集而不是单个类。
  • 它不允许访问所有私有成员;它只授予内部成员访问权限。

以上是C# 如何实现类似于 C 的'Friend”关键字对私有成员的受控访问的功能?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板