我正在嘗試撰寫一個類別庫,如下所示:
namespace Test
{
class Field
{
}
public abstract class SomeClass
{
protected Field field; //Inconsistent accessibility: field type 'Field' is less accessible than field 'SomeClass.field'
}
public class SomeDerivedClass1:SomeClass
{
}
public class SomeDerivedClass2:SomeClass
{
}
}
規則:
- 我不想創建
Field一個受保護的子類SomeClass,因為它被其他類使用; - 我不想
Field在Test命名空間之外可見,因為它破壞了封裝; - 我需要繼承,因為
SomeDerivedClass1和SomeDerivedClass2共享很多代碼。
在不違反任何這些規則的情況下,是否有解決此問題的方法?
uj5u.com熱心網友回復:
您可以使用新的private protected修飾符。這相當于internalAND protected。
不要與混淆
protected internal這是protectedORinternal
public abstract class SomeClass
{
private protected Field field;
}
盡管如此,它在命名空間外的同一個程式集中仍然可見。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/329740.html
上一篇:lumenarray_key_exists()貶值了,那么如何使用isset()或property_exists()之類的替代方法來陣列呢?
下一篇:根據型別層次創建映射函式
