Is it OK to have virtual async method on base class?
I am working with some code, where I have 2 classes with very similar logic and code. I have protected async void LoadDataAsync() method on both classes. Currently I am refactoring it and thinking to move shared logic to base class. Is it OK to have virtual async method on base class and override it on derived classes? Are there any issues with it? My code looks like this: public class Base { protected virtual async void LoadDataAsync() {} } public class Derived : Base { protected override async void LoadDataAsync() { // awaiting something } } Similar (but not same) question was already asked.