#c# #inheritance #webclient
#c# #наследование #webclient
Вопрос:
Я использую WebClient
в приложении .NET 4.7.2 WinForms. Я вызываю UploadProgressChanged
событие, которое получает UploadProgressChangedEventArgs
объект. Я хотел бы добавить дополнительное свойство к аргументам события, поэтому я пытаюсь расширить UploadProgressChangedEventArgs
as UploadProgressChangedExtEventArgs
.
public class UploadProgressChangedExtEventArgs : UploadProgressChangedEventArgs {
public UploadProgressChangedExtEventArgs() { }
public string Message { get; set; }
}
Однако я получаю сообщение об ошибке «CS1729: ‘UploadProgressChangedEventArgs’ не содержит конструктора, который принимает 0 аргументов».
Согласно документации (и Object Browser, похоже, поддерживает это) UploadProgressChangedEventArgs
, у него нет конструктора — например, вообще — хотя это базовый объект ProgressChangedEventArgs
. Я пытался использовать base()
для передачи аргументов ProgressChangedEventArgs
конструктору, но затем я получаю ошибку «не содержит конструктор, который принимает 2 аргумента».
Я просто не могу наследовать от UploadProgressChangedEventArgs
объекта? Это ошибка в .NET? Я упускаю что-то очевидное?
Комментарии:
1. У него есть конструктор, но он внутренний . Тип эффективно запечатан: вы не можете наследовать от него
2. Это очень плохо. Думаю, я поработаю с другим пользовательским обработчиком событий, который я вызываю из обработчика событий UploadProgressChanged.