C# instance de la classe avec une méthode statique vs statique de la classe de l'utilisation de la mémoire

Comment C#, ou d'autres langues d'ailleurs, de gérer l'allocation de la mémoire (et de mémoire de l'allocation entre ces deux scénarios:

1.) Une méthode d'une classe statique est invoquée.

public Program {
    Foo foo = Loader.load();
}

public static Loader {
    public static Foo load() {
        return new Foo();
    }
}

2.) Une méthode est appelée sur une instance, qui tombe alors hors de portée.

public Program {
    Foo foo = new Loader().load();
}

public Loader {
    public Foo load() {
        return new Foo();
    }
}

Je suppose que la statique de la classe est chargée, et le reste, dans la mémoire, alors que l'instance de classe succombe à la collecte des déchets à C#'s de loisirs. Sont là les avantages ou les inconvénients de ces deux paradigmes? Est-il jamais un moment où vous avez une classe qui ne doit jamais être instancié (c'est à dire une sorte de chargeur de ressources ou à l'usine), mais vous utilisez la deuxième méthodologie de toute façon de prendre avantage de la collecte des ordures?

La partie importante de ma question est de savoir si ou non le premier paradigme, tout en étant théoriquement correcte dans certaines circonstances, peuvent souffrir de conserver la mémoire inutilement.

  • Le 2ème exemple semble incorrect pour moi. L'appel d'une méthode statique requiert l'un à préfixe avec le nom de classe. par exemple, Loader.Load() & pas new Loader().Load()
  • Vous avez raison, Shah - vous n'avez pas besoin d'une instance à l'appel d'une méthode statique. C'est un peu le point 🙂
  • ah, les gars, vous êtes bien, merci, j'ai reformulé de manière à obtenir à la viande de la question que j'essayais de le demander.
  • je pense que ce qu'il veut dire, sont les frais généraux d'avoir une statique de la classe supérieure de la création d'une nouvelle instance et l'appel d'une méthode de cette instance, puis de laisser la GC de les percevoir.
  • La brièveté est l'âme de l'humour, merci pour résumant parfaitement à ma question en 5 mots, haha.
  • Est Program un class ou quoi? Parce que vous n'utilisez pas de mot-clé pour la classe.

InformationsquelleAutor jtb | 2010-02-27