当前位置:  开发笔记 > 编程语言 > 正文

C Sharp中的'friend'关键字相当于什么?

如何解决《CSharp中的'friend'关键字相当于什么?》经验,为你挑选了3个好方法。

C Sharp中的'friend'关键字相当于什么?

如何使用'internal'关键字?

我已经读过'内部'关键字是C#中'朋友'的替代品.

我在我的C#项目中使用了一个DLL,我有源代码,但我不想修改现有的代码.我继承了这个类,我可以以任何我想要的方式使用我继承的类.问题是父类中的大多数代码都有受保护的方法.以某种方式使用朋友可以访问或调用这些受保护的方法吗?



1> jason..:

    您可以使用关键字访问修饰符internal将类型或类型成员声明为只能在同一程序集中的代码访问.

    您可以使用InternalsVisibleToAttribute定义的类将System.Rutime.CompilerServices类型声明为只能在同一程序集或指定程序集中的代码访问.

在使用任何其他访问修饰符时使用第一个,例如private.以机智:

internal class MyClass {
    ...
}

您使用第二个如下:

[assembly:InternalsVisibleTo("MyFriendAssembly", PublicKey="...")]
internal class MyVisibleClass {
    ...
}

这两者都可以被认为是friendC#中的等价物.

protected派生类已经可以使用的方法.



2> 小智..:

不,"内部"与"朋友"不一样(至少是C++'朋友')

friend指定此类只能由ONE,特定类访问.
internal指定程序集中的任何类都可以访问此类.



3> johnc..:

1)内部是VB.NET'friend'关键字的C#equivelant,正如您猜到的(而不是替换)

2)用法如下

internal void Function() {}
internal Class Classname() {}
internal int myInt;
internal int MyProperty { get; set; }

3)它基本上是一个访问修饰符,它规定标记为内部的类/函数/ vairiable/property的可访问性就好像它是编译成汇编的程序集是公共的,并且对任何其他程序集是私有的

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有