Как изменить тип параметра в унаследованном методе C#? Задача:
В абстрактном классе Stream есть метод Stream.Read (Byte[], Int32, Int32). (Стандартный класс System.Stream).
Есть класс class MyTCPStream : Stream
Вопрос: Как в MyTCPStream реализовать Read(char[], Int32, Int32), но не реализовывать Read (Byte[], Int32, Int32)?
P.S. Знаю, что для интерфейсных методом можно сделать так:class E : IIF
{
pubic string M1() {...}
IIF.M1(){
return (object)M1();
}
}

21 Авг 2019 в 07:02
197 +1
0
Ответы
1

Для изменения типа параметра в унаследованном методе в C# можно использовать ключевое слово "new". В данном случае, чтобы реализовать метод Read(char[], Int32, Int32) в классе MyTCPStream, необходимо переопределить метод Read(Byte[], Int32, Int32) с типом параметра Byte[] и пометить его как "new". Пример реализации:

class MyTCPStream : Stream
{
public new int Read(char[] buffer, int offset, int count)
{
// Реализация метода Read с типом параметра char[]
return 0; // Пример возвращаемого значения
}
}

Таким образом, метод Read(Byte[], Int32, Int32) из базового класса Stream не будет реализован в классе MyTCPStream, а новый метод Read(char[], Int32, Int32) будет доступен для использования.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир