如果我有这样的课程:

public abstract class ActionBase
{
    public abstract bool RunRemote();
    public abstract void RunLocal();
    public void Run()
    {
        if (RunRemote())
        {
            var connection = new SQLiteConnection("Data Source=Data.db;Version=3;");
            connection.Open();

            var cmd = new SQLiteCommand("UPDATE Actions SET Complete = 1 WHERE Id = @Id", connection);
            cmd.Parameters.Add(new SQLiteParameter("@Id", Id));
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            connection.Dispose();
        }
        RunLocal();
    }
}


我想要的只是将Run()公开,但不能将抽象和虚拟标记为私有。有没有一种干净的方法可以做到这一点(例如不使用委托等)

谢谢,

最佳答案

您要protected。这将允许基类或派生类访问方法。

protected abstract bool RunRemote();
protected abstract void RunLocal();

关于c# - 修饰符仅允许从基类执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19235102/

10-13 03:31