and*_*ert 7 c# oop inheritance protected
考虑以下类:
public class Vehicle { ... }
public class Coverage { ... }
public class VehicleList : IEnumerable<Vehicle> { ... }
public class CoverageList : IEnumerable<Coverage> { ... }
public abstract class Quote
{
protected VehicleList vehicles;
protected CoverageList coverages;
internal Quote() { ... }
public IReadOnlyCollection<Vehicle> Vehicles
{
get { return this.vehicles.AsReadOnly(); }
}
public IReadOnlyCollection<Coverage> Coverages
{
get { return this.coverages.AsReadOnly(); }
}
...
}
public sealed class OhQuote : Quote
{
//needs to access protected fields
...
}
public sealed class InQuote : Quote { ... }
public sealed class MiQuote : Quote { ... }
Run Code Online (Sandbox Code Playgroud)
Quote
完全包裹两者的功能VehicleList
和CoverageList
所以我想这些类标记为internal
.问题是它们是类的protected
字段类型public
.如果我将那些字段标记为protected internal
那么它们就是protected
OR internal
.我真正需要的是他们是protected
和internal
(protected
在集会中优先考虑).您可以看到,无论是Quote
(具有internal
构造函数)还是其子类(都是sealed
)都可以扩展到程序集之外.我已经想出如何使用公共接口实现所需的功能,但希望确保没有更简洁的方法.
归档时间: |
|
查看次数: |
127 次 |
最近记录: |