相关疑难解决方法(0)

计划的"私有保护"C#访问修饰符的含义是什么?

作为GitHub上Roslyn文档的一部分,有一个名为语言功能实现状态的页面,具有C#和VB的计划语言功能.

我无法理解的一个功能是private protected访问修饰符:

private protected string GetId() { … } 
Run Code Online (Sandbox Code Playgroud)

还有一个C#语言设计笔记页面,它解释了许多新功能,但不是这个.

Eric Lippert在评论中说:

您的错误在于将修饰符视为增加限制.实际上,修饰符总是减少限制.请记住,默认情况下,事物是"私人的"; 只有通过添加修饰符才能减少限制.

是什么意思private protected?我什么时候可以使用它?

c# access-modifiers c#-6.0 c#-7.2

132
推荐指数
5
解决办法
1万
查看次数

C#内部getter,带有内部类参数的受保护setter

我有一个问题,想要一个属性有一个内部getter和一个受保护的setter,如本问题所述,我想我通过执行以下操作解决了这个问题:

public class Accessor : AccessorBase
{
    private Connection _connection;

    protected void setConnection(Connection value)
    {
        _connection = value;
    }

    internal Connection GetConnection()
    {
        return _connection;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我现在收到此错误:

可访问性不一致:参数类型"连接"比方法"setConnection(连接)"更难访问

这是因为我有internal class Connection.我宁愿不做Connection公开课,同时Accessor 需要公开,所以如何在保持内部getter和受保护的setter的同时解决这个错误呢?

c# access-modifiers

7
推荐指数
3
解决办法
4737
查看次数

标签 统计

access-modifiers ×2

c# ×2

c#-6.0 ×1

c#-7.2 ×1