gpt4 book ai didi

c# - 类型为内部的 protected 成员的可访问性不一致

转载 作者:行者123 更新时间:2023-12-01 20:09:15 25 4
gpt4 key购买 nike

谁能解释一下为什么编译器会给出以下错误?

 namespace Sandbox
{
internal class DataObj { }

public class A
{
protected DataObj _data;
}
}

这是编译器错误。

Inconsistent accessibility: field type 'Sandbox.DataObj' is less accessible than field 'Sandbox.A._data'.

仅当我从不同程序集中的 A 派生时,我才会出现此错误。想法?

最佳答案

问题是可能从不同程序集中的A派生。这样的类将无法访问属性的返回类型。
因此,该声明本身就是非法的。

也就是说,这个错误发生在声明端,而不是消费端。

这里的基本理念是,创造出有时无法使用的东西是不可能的。

请注意,这一理念也有一些异常(exception);您可以使用在某些情况下无法使用或继承的泛型来进行邪恶的伎俩。
这是允许的,因为将这些错误移至声明端会限制太多。

关于c# - 类型为内部的 protected 成员的可访问性不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781060/

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