.net - C# 内部 VS VBNET Friend

标签 .net language-features keyword c#-to-vb.net vb.net-to-c#

对于这个问题:What is the C# equivalent of friend? ,我个人会回答“内部”,就像 Ja 在答案中所做的那样!然而,Jon Skeet 表示,C# 中没有与 VB Friend 直接等价的东西。如果乔恩·斯基特这么说,我就不会这么说! ;P

我想知道关键字internal怎么能(C#) 不等于 Friend (VBNET) 当它们各自的定义是:

<强> Friend VBNET

The Friend (Visual Basic) keyword in the declaration statement specifies that the elements can be accessed from within the same assembly, but not from outside the assembly. [...]

<强> internal C#

Internal: Access is limited to the current assembly.

据我了解,这些定义对我来说意义完全相同。

然后,当我在 VB.NET 中编码时,我使用 Friend 关键字来指定类或属性只能在声明它的程序集中访问。在 C# 中也是如此,我使用 internal 关键字来指定相同的内容。

  1. 从这个角度来看,我是否做错了什么或什么事情?

  2. 哪些改进是我没有得到的?

  3. 有人可以解释一下 Friend 和 inside 是如何或在哪些方面不直接等同的吗?

预先感谢您的回答!

最佳答案

我说过没有与C++“ friend ”概念直接等效的东西。这与 VB.NET Friend 概念不同,后者确实相当于 C# 中的 internal

上下文很重要 - 不要假设同一个词在所有语言中都表示完全相同的东西......“静态”就是一个典型的例子:)

关于.net - C# 内部 VS VBNET Friend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2790691/

相关文章:

c# - 在运行时添加控件的最佳实践

python - 如何在装饰器中使用命名参数?

c# - C#有没有类似JavaScript的||的操作二传手?

php - 如何在全文 MySQL 搜索中同时匹配 htmlentified 关键字和非 htmlentified 关键字

c# - 如何使用 MEF(托管可扩展性框架)从目录加载 dll

c# - 如何在 Windows 应用程序中为当前登录用户存储用户设置(用户名、密码)

.net - @($null) 和 $null 的区别

java - java中的interface和@interface有什么区别?

c++ - C++ 中的 NULL 和 __null 有什么区别?

java - 如何聚类搜索引擎关键词?