Почему Предикат <> изолирован?

Вы можете использовать регистр выбора, чтобы определить версию и расширение / формат файла Excel

    If Val(Application.Version) < 12 Then
        'You use Excel 97-2003
        FileExtStr = ".xls": FileFormatNum = -4143
    Else
        'You use Excel 2007-2016
        Select Case wb.FileFormat
        Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
        Case 52:
            If .HasVBProject Then
                FileExtStr = ".xlsm": FileFormatNum = 52
            Else
                FileExtStr = ".xlsx": FileFormatNum = 51
            End If
        Case 56: FileExtStr = ".xls": FileFormatNum = 56
        Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
        End Select
    End If

Вот 2 примера

Использование VBA SaveAs в Excel 2007-2016 - Рон де Брюин Excel Automation

https://stackoverflow.com/a/30393989/4539709

5
задан GregUzelac 18 October 2008 в 17:01
поделиться

3 ответа

Predicate<T> тип делегата. Вы никогда не можете происходить от делегатов.

Честно говоря, это не кажется, что наследование является действительно соответствующим здесь так или иначе - просто пишут метод, который возвращает инверсию оригинала. Это настолько просто:

public static Predicate<T> Invert<T>(Predicate<T> original)
{
    return t => !original(t);
}
20
ответ дан 18 December 2019 в 06:13
поделиться

Предикат является делегатом. Вы не можете наследоваться типу делегата. Если Вы хотите получить инвертированное значение, используйте следующее:

Predicate<T> p;
Predicate<T> inverted = t => !p(t);
4
ответ дан 18 December 2019 в 06:13
поделиться

Функциональность делегата состоит в том, чтобы обработать список безопасных с точки зрения типов указателей метода. Разработчики C# решили, что нет ничего для добавления к этой функциональности и нет никакой причины изменить поведение на делегатов.

Так, Jon прав, наследование не является соответствующим здесь.

Делегаты могут указать на список методов. Мы добавляем к этому списку с + = оператор или с Делегатом. Объединение. Если подпись метода не является пустой затем, результат последнего вызываемого метода возвращается (если отзыв правильно).

2
ответ дан 18 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

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