gpt4 book ai didi

c# - 公共(public)变量不可访问

转载 作者:行者123 更新时间:2023-12-04 17:00:49 27 4
gpt4 key购买 nike

在一个命名空间 (Ventosa.Graphics) 中,我有一个名为 Model 的公共(public)类

namespace Ventosa.Graphics
{
public class Model : GraphicsResource
{
public Model(...)
{
...
}
...
}
}

然后在另一个项目中我尝试访问这个类
Model player = new Model(...);

但是这一行会产生一个错误。 C# 承认 Model 存在,但声称由于它的保护级别而无法访问它。公开它不应该意味着它可以从任何地方访问吗?

是的,基类 GraphicsResource 是公共(public)的。

这也发生在我项目的其他几个地方,所有的类都是派生的。

编辑:
确切的错误消息是(德语):
Der Zugriff auf "Ventosa.Graphics.Model"ist aufgrund der Sicherheitsebene nicht möglich。翻译成英文,它说:“Ventosa.Graphics.Model”由于其保护级别而无法访问。

最佳答案

你描述的东西显然不应该是。我建议您尝试以最简单的方式重现问题。你可能做不到。然后添加到您的示例中,使其越来越像您的生产代码,直到您触发问题。

删除对父类(super class)的引用 GraphicResource .确保只定义了一个构造函数。尝试使用完整的命名空间引用(不是 using 语句)和单个显式构造函数从相同的命名空间实例化该类。它可能会起作用。

如果它不起作用,请退后一步并完全定义一个新类型( Ventosa.Graphics.ModelTest 或其他东西)。确保有效。

现在,重新添加碎片。继承自 GraphicResource ,试试看。删除命名空间限定;使用 using反而。将实例化移动到不同的命名空间,然后移动到不同的程序集。

您已经验证了 GraphicResource 的定义类(class)是公开的。 中的任何一个怎么样?它的 父类(super class)?

关于c# - 公共(public)变量不可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135629/

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