C#是否等效于C ++朋友关键字?

黄色

我是C#的新手,我在C ++中通常会使用friend标识符来解决这个问题现在,我知道该friend关键字在C#中不存在,但是我没有解决此问题的经验(除了将所有类变量设为公共属性外,如果可以的话,我想避免使用该属性)。

我有以下情况:

public class A 
{
    public string Info { get; set; }
    /* much more data */
}

public class B
{
    private A m_instanceOfA;

    public B(A a) { m_instanceOfA = a; }

    public Info { get return A.info; set A.Info  = value; }

    /* And some more data of its own*/
}

public class C
{
    private A m_instanceOfA;

    // I need a constructor of C, which needs to set C.m_instanceOfA
    // to the same value as b.m_instanceOfA.
    public C(B b) { m_instanceOfA = b.m_instanceOfA ; } // <--- Not allowed!

    /* And some more data of its own*/
}

还有其他任何不B.m_instanceOfA公开的聪明方法C访问此变量(仅在构造函数中)吗?

伊夫·M。

内部

您可以使用内部关键字。这样,您的类型(或类型成员)将仅对同一程序集中的其他类型可见。并且:

如果需要内部类型在其他程序集中可见,则可以使用InternalsVisibleToAttribute此属性针对您的整个程序集,通常写在AssemblyInfo.cs文件中。


PS:C#中不存在Friend关键字,但是存在友谊的概念(与C ++中的概念并不完全相同),它在MSDN上的Friend Assemblies文章中进行了描述还请注意,VB.NET中存在一个Friendly关键字,并且其行为与C#内部关键字完全相同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C++ 等效于 C# 对象关键字

来自分类Dev

是否有Java等效于C#Out关键字

来自分类Dev

是否有Java等效于C#Out关键字

来自分类Dev

在delphi中等效于`this`关键字

来自分类Dev

Kotlin是否有C#的“默认”关键字的等效项?

来自分类Dev

什么是C#Linq等效于VB.Net Linq Group Join和Into关键字?

来自分类Dev

C关键字中断

来自分类Dev

C ++函数的关键字?

来自分类Dev

C关键字中断

来自分类Dev

C#使用关键字的范围

来自分类Dev

在C#中覆盖关键字

来自分类Dev

C#中的“ This”关键字

来自分类Dev

JSON 使用 C# 关键字

来自分类Dev

C#“new”关键字

来自分类Dev

C ++导入关键字,模块关键字和导出关键字

来自分类Dev

在C / C ++中,FORTRAN中的POINTER关键字等效

来自分类Dev

在ABAP中,Java的finally关键字等效于什么?

来自分类Dev

C#中'const'关键字的C ++ / CLI等效项是什么?

来自分类Dev

在C ++中使用C关键字

来自分类Dev

Drools规则左侧的“ this”等效关键字

来自分类Dev

VB Linq中Aggregate关键字在C#中的等效项是什么?

来自分类Dev

Java的瞬时关键字的C#等效项是什么?

来自分类Dev

C ++中的“ using”关键字

来自分类Dev

C ++ 11“类”关键字

来自分类Dev

C ++ constexpr关键字放置

来自分类Dev

了解C ++中的volatile关键字

来自分类Dev

在C中声明关键字

来自分类Dev

C中的extern关键字

来自分类Dev

C宏:如何隐藏__at关键字?