Существует ли разумный подход к параметрам типа “по умолчанию” в Дженериках C#?

Оператор обновления в salaryproc обновляет каждую запись в таблице персонала. Добавьте оператор where, чтобы уменьшить его до записей, которые вы хотите обновить.

update staff
    set salary=@salary
where
    bookingType = @booking_type
    and staffType = @staff_type

Курсор и хранимая процедура могут быть упрощены, чтобы установить основанные операторы обновления. Операции на основе множеств предпочтительнее курсоров.

-- set the salary for personal + booking
update staff
    set salary= 1500+2300
where
    bookingType = 'personal'
    and staffType = 'booking'

-- set the salary for personal + catering
update staff
    set salary= 1500+1900
where
    bookingType = 'personal'
    and staffType = 'catering'

-- set the salary for official + booking
update staff
    set salary= 1800+2300
where
    bookingType = 'official'
    and staffType = 'booking'

-- set the salary for official + catering
update staff
    set salary= 1800+1900
where
    bookingType = 'official'
    and staffType = 'catering'
80
задан el2iot2 1 April 2009 в 23:51
поделиться

3 ответа

Разделение на подклассы является наилучшим вариантом.

Я разделил бы Ваш основной универсальный класс на подклассы:

class BaseGeneric<T,U>

с определенным классом

class MyGeneric<T> : BaseGeneric<T, string>

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

72
ответ дан Reed Copsey 24 November 2019 в 10:00
поделиться

C# не поддерживает такую функцию.

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

8
ответ дан Mehrdad Afshari 24 November 2019 в 10:00
поделиться

К сожалению, C# не поддерживает то, что Вы пытаетесь сделать. Это была бы трудная функция для реализации, учитывая, что тип по умолчанию для параметра должен будет придерживаться универсальных ограничений и скорее всего создал бы головные боли, когда CLR пытался гарантировать безопасность типов.

1
ответ дан Andrew Hare 24 November 2019 в 10:00
поделиться
Другие вопросы по тегам:

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