J'ai posé une question plus tôt aujourd'hui, mais je pense que je dois l'aborder d'une manière différente (en plus de cela il y avait un "raccrocher" en ce qui concerne DataSet) .C# - Question de disposition liée à la conception (prendre deux)
est ici une classe qui encapsule la création d'une police (autrement dit, il est en train de lire les données à partir d'un fichier xml et crée une police, lors de l'exécution, en fonction de ce qu'il lit dans ce fichier):
public class FontCreator
{
private Font m_TheFont = null;
public FontCreator(... some parameters ...)
{
m_TheFont = GetTheFont();
}
public Font TheFont
{
return m_TheFont;
}
private Font GetTheFont()
{
// code, and more code, that eventually leads to:
Font f = new Font(fntFamily, fntSize, fntStyle);
return f;
}
}
le consommateur de la classe FontCreator ressemble à quelque chose comme:
public class TheConsumer()
{
private FontCreator m_FontCreator = null;
public TheConsumer()
{
m_FontCreator = new m_FontCreator(... some parameters ...);
Initialize();
}
private void Initialize()
{
InitializeThis();
InitializeThat();
}
private void InitializeThis()
{
.... some code ...
SomeObject.ApplyFont(m_FontCreator.TheFont);
}
private void InitializeThat()
{
... some code ...
SomeObject.ApplyFont(m_FontCreator.TheFont);
}
}
Quel code ajoutez-vous, et où, pour faire en sorte que « TheFont » de méthode Dispose est explicitement appelé?
d'abord vous demander pourquoi vous avez besoin de disposer d'une police, quel est le but de votre disposition? Y at-il des ressources importantes que vous essayez de libérer? .. il semble que vos questions tentent de se débarrasser des choses juste pour les mettre au rebut. –
@Stan R: Attendez, quoi !? À partir de ce lien msdn: http://msdn.microsoft.com/en-us/library/yh598w02.aspx – JustLooking
@Stan R (suite): a) «Fichier et police sont des exemples de types gérés qui accèdent aux ressources non managées» . b) "En règle générale, lorsque vous utilisez un objet IDisposable, vous devez le déclarer et l'instancier dans une instruction using L'instruction using appelle correctement la méthode Dispose sur l'objet, et (lorsque vous l'utilisez comme indiqué précédemment) il provoque également l'objet lui-même à sortir de la portée dès que Dispose est appelé " – JustLooking