Wil*_*ler 18 .net language-features keyword c#-to-vb.net vb.net-to-c#
对于这个问题:什么是C#相当于朋友?,我个人已回答"内部",就像Ja在答案中所做的那样!然而,Jon Skeet说在C#中没有直接等价的VB Friend.如果Jon Skeet这么说的话,我就不会这样说了!,P
我想知道当关键字internal(C#)各自的定义是什么时,它们怎么能不等同于Friend(VBNET):
声明语句中的Friend(Visual Basic)关键字指定可以从同一个程序集中访问元素,但不能从程序集外部访问.[...]
内部:访问仅限于当前程序集.
据我了解,这些定义对我来说意义相同.
然后,当我在VB.NET中编码时,我使用Friend关键字来指定只能在声明它的程序集中访问类或属性.在C#中,我使用internal关键字指定相同.
从这个角度来看,我做错了什么吗?
我没有得到什么改进?
有人可以解释一下朋友和内部是如何或不是直接对等的?
提前感谢您的任何答案!
Jon*_*eet 27
我已经说过,没有直接相当于C++ "朋友"的概念.这与VB.NET Friend
概念不同,后者确实等同internal
于C#.
上下文很重要 - 不要认为同一个词在所有语言中都意味着完全相同的东西......"静态"是一个经典的例子:)
乔恩(原始)的回答清楚地表明,他指的是C / C ++ friend
关键字,该关键字授予对另一个类的私有访问权。C#中没有直接等效的方法,但是有一种方法可以扩展internal
到另一个程序集,主要用于测试。
据我了解,VB.Net Friend
与C#相同internal
。
(正如乔恩在此处添加答案一样,我写了以上内容。)
在比较 .NET 语言时,VBfriend
等同于 C# 的internal
. 意思是,任何标记为此类的内容只能从同一项目/程序集中访问。它可以结合使用protected
以更好地控制可见性。
该InternalsVisibleTo
属性可用于测试目的;尽管名称如此,但它适用于 VB 和适用于 C# 一样多。需要注意的是,VBInternalsVisibleTo
直到 .NET 4 才支持使用。
归档时间: |
|
查看次数: |
8055 次 |
最近记录: |