Это сообщение относится к пробелу в моем понимании классов C# и почему они предпочтительнее статических функций.Непонимание объекта Objectiation in C#
Я пытаюсь получить список объектов. Каждый объект в списке представляет собой запись в таблице. Это было бы легко сделать в статической функции.
Использование класса, я был в состоянии сделать это следующим образом:
Вызов рутина:
ListOfBusinesses l = new ListOfBusinesses();
List<Business> b = l.listBusinesses();
Классы:
public class Business
{
public string Bupk { get; set; }
public string Bu_name { get; set; }
}
public class ListOfBusinesses
{
public List<Business> listBusinesses()
{
List<Business> businesses = new List<Business>();
businesses.Add(new Business("1", "Business Name 1"));
businesses.Add(new Business("2", "Business Name 2"));
return businesses;
}
}
я не мог переписать класс так что это может быть сделано с одной линией:
ListOfBusinesses l = new ListOfBusinesses();
Мне кажется, что класс ListofBusinesses выше - это не что иное, как статическая функция, завернутая в класс, который не имеет свойств и существует только ради класса.
Я пробовал:
public class ListOfBusinesses
{
List<Business> businesses;
public List<Business> ListOfBusinesses()
{
List<Business> businesses = new List<Business>();
businesses.Add(new Business("1", "Business Name 1"));
businesses.Add(new Business("2", "Business Name 2"));
return businesses;
}
}
Но получил ошибку компилятора «имена членов не может быть такой же, как там ограждающих типа». Например, я попытался использовать конструктор, но я что-то упустил.
Любая помощь просветит меня в области, которую я неправильно понял в течение некоторого времени.
Mike Thomas
Зачем вам распространять общий список? Я ничего не вижу в коде, который требует этого вообще. –
Похоже, Майк хотел, чтобы класс дал ему список с уже установленным значением по умолчанию. Существует два решения: использовать фабрику или расширить список по умолчанию. У меня возникает ощущение, что он хочет сделать больше, чем добавить пару значений по умолчанию - возможно, добавить пару методов или что-то еще, и именно поэтому он инкапсулировал его в первую очередь. Я просто думаю, что было бы легче расширить его. –