次のようなメソッドを作成しました。
public TimeSlotList processTimeSlots (DateTime startDT, DateTime endDT, string bookingType, IList<Booking> normalBookings, GCalBookings GCalBookings, List<DateTime> otherApiBookings) {
{
..... common process code ......
while (utcTimeSlotStart < endDT)
{
if (bookingType == "x")
{
//process normal bookings using IList<Booking> normalBookings
}
else if (bookingType == "y") {
//process google call bookings using GCalBookings GCalBookings
}
else if (bookingType == "z" {
//process other apibookings using List<DateTime> otherApiBookings
}
}
}
そのため、3 つの異なる場所からこれを呼び出しています。毎回異なる予約タイプを渡し、各ケースで処理に関心のある予約と、この予約タイプに使用されていない 2 つの空のオブジェクトを渡します。
予約をすべて同じデータ型にすることはできません。これにより、これが簡単になり、予約の種類ごとに異なる処理が必要になるため、これをどのように改善できるかわかりません。