Est-il sécuritaire d'utiliser l' using
énoncé de (potentiellement) objet null?
I. e. considérons l'exemple suivant:
class Test {
IDisposable GetObject(string name) {
// returns null if not found
}
void DoSomething() {
using (IDisposable x = GetObject("invalid name")) {
if (x != null) {
// etc...
}
}
}
}
Est-il garanti qu' Dispose
sera appelée que si l'objet n'est pas null, et je ne vais pas obtenir un NullReferenceException
?
note: à partir du lien dans la accepté de répondre:
L'exemple de code plus tôt s'étend dans le code suivant au moment de la compilation (note supplémentaires des accolades pour créer de la portée limitée de l'objet): C#
{
Font font1 = new Font("Arial", 10.0f);
try
{
byte charset = font1.GdiCharSet;
}
finally
{
if (font1 != null)
((IDisposable)font1).Dispose();
}
}