Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 属性:内部获取,受保护集_C#_Properties - Fatal编程技术网

C# 属性:内部获取,受保护集

C# 属性:内部获取,受保护集,c#,properties,C#,Properties,我有一个类,它本身是内部的,所以下面声明中的差异没有实际意义,但我想了解它背后的机制 我有一个这样的财产: public String CreditedAs { get; protected set; } 它编译得很好。任何有权访问该类的人都可以读取getter,setter只能在该类或其派生的类中读取 现在,当我尝试这个: internal String CreditedAs { get; protected set; } 我明白了 为什么呢?及 protected String Cred

我有一个类,它本身是内部的,所以下面声明中的差异没有实际意义,但我想了解它背后的机制

我有一个这样的财产:

public String CreditedAs { get; protected set; }
它编译得很好。任何有权访问该类的人都可以读取getter,setter只能在该类或其派生的类中读取

现在,当我尝试这个:

internal String CreditedAs { get; protected set; }
我明白了

为什么呢?及

protected String CreditedAs { internal get; set; }

也不起作用。

我认为您混淆了
受保护的
内部的

internal
-表示该类型只能在程序集中使用。不在装配外部

protected
-表示可以在给定类型和从基类型派生的类型中访问该类型

所以,如果你用like来解释,就会产生问题


因此,如果您想实现这两种功能,可以使用受保护的内部——这表示该类型可用于in类型和in派生类型,并且仅可用于in程序集。

如果它适用于您,请不要忘记将其标记为已接受。……这个问题与另一个问题不完全相同。虽然遇到了相同的错误,但不同的问题导致了它。我在这一页上登陆,我永远不会登陆标记为此副本原件的页面。除此之外,正确的解释是:注意,可以从另一个程序集B的程序集a中的非密封类派生。在这种情况下,类B可以访问类a的受保护成员,但不能访问内部成员。
protected String CreditedAs { internal get; set; }