Проблема множественного наследования в C#

При вычислениях данных между теми записями может быть лучше передать их потоком, поскольку они доступны. Кроме того, запись их внезапно может произвести переполнение буфера (хотя это, вероятно, редко, это действительно происходит), означая, что Ваше приложение должно приостановить и повторить записи (не все они, только от точки, где Вы поражаете переполнение.)

я обычно не старался бы изо всех сил разделять записи на блоки, особенно не всего 256-байтовые блоки. (Так как примерно 1 500 байтов могут поместиться в пакет Ethernet после TCP/IP наверху, я использовал бы блоки, по крайней мере, настолько большие.)

5
задан Community 23 May 2017 в 10:09
поделиться

5 ответов

Одно решение, которое может работать для вместо этого вы должны создать интерфейс и поместить свою реализацию в методы расширения.

5
ответ дан 14 December 2019 в 08:56
поделиться

звучит для меня как хорошее время для использования шаблона декоратора, вот некоторые ресурсы:

http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_wrapper302122006080905AM/csharp_wrapper3. aspx

http://andrewtroelsen.blogspot.com/2009/04/decorator-pattern-extension-methods.html

2
ответ дан 14 December 2019 в 08:56
поделиться

Я использовал заглушки, которые вызываются из производного класса и принимают класс базового типа в качестве аргумента. Это оставляет мне несколько однострочных функций. Жаль.

0
ответ дан 14 December 2019 в 08:56
поделиться

Я не могу напрямую обращаться к свойству зависимости ситуации, поэтому я расскажу об общей проблеме, если это поможет.

В C # нельзя выполнять множественное наследование реализации. Однако вы можете присоединить интерфейс.

Итак, вы можете определить интерфейс:

interface IWhatever
{
    ...
}

А затем вы можете реализовать функции этого интерфейса в классе следующим образом:

class M : IWhatever
{
}

И теперь вы берете классы, которые вы хотели бы иметь эту дополнительную функциональность:

class B : MustExtend, IWhatever
{
    private M myMImpl = new M();

   // implement functions, call to 'myMImpl' for implementation.
}

Это называется «композиция».

0
ответ дан 14 December 2019 в 08:56
поделиться

Проблема с методами расширения и интерфейсами заключается в том, что для свойств зависимостей требуется объявление статических членов и общедоступных свойств, например:

    public PermissionEnum Permission
    {
        get { return (PermissionEnum)GetValue(PermissionProperty); }
        set { SetValue(PermissionProperty, value); }
    }

    public static readonly DependencyProperty PermissionProperty =
        DependencyProperty.Register("Permission", typeof(PermissionEnum), typeof(SecurityMenuItem), new FrameworkPropertyMetadata(PermissionEnum.DeliveryView));
0
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: