如果我有这样的课程:
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/