gpt4 book ai didi

c# - .Net 类库中的可访问性

转载 作者:行者123 更新时间:2023-11-30 22:15:51 27 4
gpt4 key购买 nike

我正在处理类库,但在可访问性方面遇到了问题。我的类库包含几个不应从其他应用程序访问的内部类。相反,我想创建一个包含所有内部类实例的单例主类,以便其他应用程序可以访问主类,然后使用该实例中的内部类。下图解释了层次结构。

enter image description here

我试过将主类设为公共(public)类,将内部类设为内部类,但这会给我错误“不一致的可访问性”。我的主类看起来像这样:

public class Main
{
private static Main Instance;
public static Main GetInstance()
{
if (Instance == null)
Instance = new Main();
return Instance;
}

public Debugging Debugger = new Debugging();
}

我的一个内部类(调试)看起来像这样:

internal class Debugging
{
Content....
}

所以我希望有人能帮我弄清楚如何让内部类只能通过我的单例主类访问。

最佳答案

我不确定您的问题是什么,所以我将其分为两个选项:

您希望外部程序集可以访问“Debugging”,但只能通过“Main”访问

有几种方法可以做到这一点,但现在最简单的方法是保持Debugging public,但只定义internal构造函数。这将允许它的使用,但外部程序集将无法实例化它们,从而迫使它们访问在 Main

上创建的实例
public class Debugging
{
internal Debugging() { }
}

您不希望外部程序集可以访问“Debugging”,但仍然可以通过“Main”在您的类程序集中访问

只需将 Main.Debugger 的可访问性修饰符更新为 internal

internal Debugging Debugger = new Debugging();

关于c# - .Net 类库中的可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17743371/

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