Ce post va à une lacune dans ma compréhension des classes C# et pourquoi elles sont préférables aux fonctions statiques. J'essaie d'obtenir une liste d'objets. Chaque objet de la liste représente un enregistrement dans une table. Ce serait facile à faire dans une fonction statique.Ne pas comprendre l'instanciation de l'objet en C#
Utilisation d'une classe, que je suis capable de le faire comme suit:
appel de routine:
ListOfBusinesses l = new ListOfBusinesses();
List<Business> b = l.listBusinesses();
Les classes:
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;
}
}
je ne pourrais pas réécrire la classe de sorte que cela pourrait être fait avec une ligne:
ListOfBusinesses l = new ListOfBusinesses();
Il me semble que la classe ListofBusinesses ci-dessus n'est qu'une fonction statique enveloppée dans une classe qui n'a pas de propriétés et qui n'est là que pour avoir une classe.
J'ai essayé:
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;
}
}
Mais reçu l'erreur du compilateur « noms de membres ne peut pas être le même que le type y enfermant ». Par exemple, j'ai essayé d'utiliser un constructeur, mais il me manque quelque chose.
Toute aide pourrait m'éclairer dans un domaine que j'ai mal compris depuis un certain temps.
Mike Thomas
Pourquoi voudriez-vous étendre la classe générique List? Je ne vois rien dans le code qui exige cela du tout. –
Il semblait que Mike voulait une classe qui lui donnait une liste avec un ensemble de valeurs par défaut déjà ajouté. Il existe deux solutions: utiliser une fabrique ou étendre la liste par défaut. J'ai l'impression qu'il veut faire plus que d'ajouter quelques valeurs par défaut - peut-être ajouter quelques méthodes ou quelque chose - ce qui explique pourquoi il l'a encapsulé en premier lieu. Je pense juste que ce serait plus facile de l'étendre. –