我正在处理一些代码,其中有两个类的逻辑和代码非常相似。它们都有一个protected async void LoadDataAsync()
方法。
目前,我正在重构代码,并考虑将共享的逻辑移动到基类中。
在基类中使用virtual async
方法,在派生类中重写它,这样可以吗?
是否存在任何问题?
我的代码如下:
public class Base
{
protected virtual async void LoadDataAsync() {}
}
public class Derived : Base
{
protected override async void LoadDataAsync()
{
// awaiting something
}
}
已经有类似但不完全相同的问题被提出了。
async
作为修饰符仅适用于方法的实现 - 它不是签名的一部分。 - Jon Skeet