gpt4 book ai didi

c# - 如何创建仅供特定类使用的构造函数。 (C# 中的 C++ Friend 等价物)

转载 作者:可可西里 更新时间:2023-11-01 08:37:29 25 4
gpt4 key购买 nike

据我所知,在 C# 中,不支持 C++ 中的“friend”关键字。有没有另一种方法可以设计一个类来实现相同的最终结果,而无需求助于不可用的“ friend ”关键字?

对于那些还不知道的人,Friend 关键字允许程序员指定类“X”的成员只能由类“Y”访问和使用。但是对于任何其他类,该成员都是私有(private)的,因此无法访问它们。 “Y”类不必继承自“X”类。

最佳答案

不,在 C# 中无法做到这一点。

一个常见的解决方法是将要隐藏其构造函数的对象基于接口(interface)。然后,您可以使用另一个对象来构造一个实现该接口(interface)的私有(private)嵌套类,并通过工厂返回它。这可以防止外界直接构建您的对象,因为他们只能看到界面并与之交互。

public interface IMyObject
{
void DoSomething();
}

public class MyFriendClass
{
IMyObject GetObject() { return new MyObject(); }

class MyObject : IMyObject
{
public void DoSomething() { // ... Do something here
}
}
}

关于c# - 如何创建仅供特定类使用的构造函数。 (C# 中的 C++ Friend 等价物),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com