We're a place where coders share, stay up-to-date and grow their careers.
In the generateReport function signature you either have to specify the concrete FTPClient class as the parameter type
generateReport
FTPClient
void generateReport<TTransferClient>(TTransferClient client) where TTransferClient: ICanUpload, ICanDownload { ... }
Also, I think IFTPClient is a violation of SRP in this case. You should simply take in both separately (ICanUpload uploader, ICanDownload downloader).
IFTPClient
(ICanUpload uploader, ICanDownload downloader)
Also, I think
IFTPClient
is a violation of SRP in this case. You should simply take in both separately(ICanUpload uploader, ICanDownload downloader)
.