c# - 接口(interface)属性的内部修饰符

标签 c# .net properties interface

我有以下界面:

public interface IAgable {
    int Age { get; internal set; }
}

我希望 Age 属性对于引用此接口(interface)的外部程序集是只读,但我也希望 Age 属性要在接口(interface)的同一程序集上设置,因此要使用 internal 修饰符。

然而,这似乎会引发编译错误,因为可访问性修饰符不能用于接口(interface)中的访问器

我希望从接口(interface)调用该属性,并且我希望能够在内部级别设置它。同时,如果从外部项目引用,我希望它是只读的。

这可能吗?

最佳答案

有一个提供getset 的内部接口(interface),以及一个只提供get 的公共(public)接口(interface)。让公共(public)接口(interface)扩展内部接口(interface):

public interface IAgable
{
    int Age { get; }
}

internal interface IAgableInternal : IAgable
{
    int Age { set; }
}

关于c# - 接口(interface)属性的内部修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933371/

相关文章:

matlab - 获取BW或RGB图片中不规则物体的长度,并将其绘制到图片中以进行控制

c# - Excel.ExcelReaderFactory 无法打开某些文件

c# - Emgu.cv 的 Tesseract 对象使用不正确的 OCR 文件路径

c# - Pie 内的点

.net - Rx 与响应式编程有什么关系?

c# - 将私有(private)成员封装为属性与定义没有私有(private)成员的属性有什么区别?

c++ - 为什么我不能拥有带有此签名的 Q_PROPERTY?

c# - 使用c#在mysql中插入引号

c# - 有没有办法在没有 Entity Framework 的情况下从 C# 中的 SQL Server 映射存储过程?

c# - 如何在方法设置中为数组起订 It.IsAny?