Есть ли способ использовать условные при объявлении переменных метода? - PullRequest
0 голосов
/ 06 февраля 2020

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

Я думаю, это будет что-то вроде:

public override SetInsurance(BusinessObjects.Utilities.LandViewer Viewer_land || BusinessObjects.Utilities.SeaViewer Viewer_sea, DataTable patient, int InsurancePriority)
{
}

Любая помощь приветствуется, поскольку ее может просто не существовать.

* // Обратите внимание, что эти BO составляют 95 процентов аналогично, но их объединение не является вариантом в нашей кодовой базе.

1 Ответ

2 голосов
/ 06 февраля 2020

Вы должны взять биты, которые на 95% похожи (или, по крайней мере, биты, которые вы хотели бы использовать в этом и других методах, которые могут работать с любым типом), и поместить их в интерфейс, скажем, interface IViewer. Пусть LandViewer и SeaViewer реализуют этот интерфейс, и метод должен его принять, например:

interface IViewer {
    string Name {get;set;}
}

class LandViewer: IViewer {
    public string Name {get;set;}
    public int SomeValue;
}
class SeaViewer: IViewer {
    public string Name {get;set;}
    public string SomeOtherValue;
}

public override SetInsurance(IViewer viewer, DataTable patient, int InsurancePriority) {
    Console.WriteLine(viewer.Name); //.Name is accessible as it's part of the 95%

    // .SomeValue and .SomeOtherValue are not accessible, because they're not part of the 95% 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...