Доступные методы в зависимости от конструктора C#
Возможно ли менять доступные методы в зависимости от конструктора?
К примеру, есть класс Data с двумя конструкторами: Data(String ID) и
Data(String ID,Int32 Number) и методами Create(), Delete(), Count().
Необходимо:
Если создается экземпляр класса Data Data1 = new Data("123");, то доступны будут лишь методы Create() и Delete(). Если же экземпляр класса Data Data2 = new Data("123",123);, то доступны все 3 метода: Create(), Delete() и Count().
Заранее всем спасибо за помощь и потраченное время.
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
ООП - наследование.
public class Data
{
public Data(string id)
{
//...
}
public void Create()
{
//...
}
public void Delete()
{
//...
}
// ...
}
public class DataItem : Data
{
public DataItem(string id, int number) : base(id)
{
//...
}
public int Count()
{
//...
}
// ...
}
Data data1 = new Data("123");
DataItem data2 = new DataItem("123", 123);
List<Data> items = new List<Data>();
items.Add(data1);
items.Add(data2); // без наследования такое бы не сработало