У меня очень простой сценарий: " человек " может быть " клиентом " или " сотрудником " компании.
" человек " может быть вызван по телефону методом " Call ".
В зависимости от того, какую роль " person " играет в контексте вызова , например, объявление о новом продукте или объявление об изменении в организации, мы должны либо использовать номер телефона, предоставленный для роли « customer », либо номер телефона, предоставленный для « employee » роль.
Вот итог ситуации:
interface IPerson
{
void Call();
}
interface ICustomer : IPerson
{
}
interface IEmployee : IPerson
{
}
class Both : ICustomer, IEmployee
{
void ICustomer.Call()
{
// Call to external phone number
}
void IEmployee.Call()
{
// Call to internal phone number
}
}
Но этот код не компилируется и выдает ошибки:
error CS0539: 'ICustomer.Call' in explicit interface declaration is not a member of interface
error CS0539: 'IEmployee.Call' in explicit interface declaration is not a member of interface
error CS0535: 'Both' does not implement interface member 'IPerson.Call()'
Есть ли шанс, что этот сценарий может быть реализован в C # другим способом, или мне нужно будет найти другой дизайн?
Если да, то какие альтернативы вы предлагаете?
Заранее спасибо за помощь.