Un champ d'initialiseur ne peut pas faire référence à la non-statique champ, une méthode ou une propriété?

J'ai une Classe de Dépôt et de Services de Classe comme ci-dessous :

public class DinnerRepository
{
    DinnerDataContext db = new DinnerDataContext();

    public Dinner GetDinner(int id)
    {
        return db.Dinners.SingleOrDefault(d => d.DinnerID == id);   
    }

//Others Code        
}



public class Service
{
        DinnerRepository repo = new DinnerRepository(); 
        Dinner dinner = repo.GetDinner(5);

//Other Code
}

Cela déclenche une erreur:

Un champ d'initialiseur ne peut pas faire référence à la non-statique champ, une méthode ou une propriété.

Même si j'ai intatiated la DinnerRepository Classe pour exposer sa méthode GetDinner() dans la Classe de Service. Cela fonctionne très bien avec le code ci-dessous. Est-il une alternative à celle-ci ou est-ce une pratique courante? Je ne peux pas utiliser des méthodes statiques ici..

public class Service
{

    public Service()
    {
        DinnerRepository repo = new DinnerRepository(); 
        Dinner dinner = repo.GetDinner(5);
    }

}

OriginalL'auteur sumit kishore | 2011-09-13

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *