Selon MSDN LibraryConfused avec « l'aide » Déclaration C#
using Statement (C# Reference)
Defines a scope, outside of which an object or objects will be disposed.
Mais je suis arrivé ce code affiché ici par un utilisateur et je suis confus à ce sujet: (s'il vous plaît voir mon commentaire sur le code)
using (OleDBConnection connection = new OleDBConnection(connectiongString))
{
if (connection.State != ConnectionState.Open)
connection.Open();
string sql = "INSERT INTO Student (Id, Name) VALUES (@idParameter, @nameParameter)";
using (OleDBCommand command = connection.CreateCommand())
{
command.CommandText = sql;
command.CommandType = CommandType.Text;
OleDBParameter idParameter = command.CreateParameter();
idParameter.DbType = System.Int32;
idParameter.Direction = Parameterdirection.Input;
idParameter.Name = "@idParameter";
idParameter.Value = studentId;
OleDBParameter nameParameter = command.CreateParameter();
try
{
command.ExecuteNonQuery();
}
finally
{
// Is it still necessary to dispose these objects here?
command.Dispose();
connection.Dispose();
}
}
}
Dans le code ci-dessus, l'instruction using
est-elle correctement utilisée? Je suis confus, quelqu'un peut-il s'il vous plaît expliquer comment utiliser using
déclaration et sa portée et quand, où et pourquoi l'utiliser. Merci ..
effectivement identique à if (x! = Null) {((IDisposable) x) .Dispose(); } - using Statement (Référence C#) http://bit.ly/acmoOD –
Je trouve triste que juste parce que j'ai posté ma réponse une minute avant que je n'ai (actuellement) deux fois les votes, cela ne présage rien de bon pour SO , votre question n'est en aucun cas inférieure à la mienne, mais parce que vous n'avez pas dessiné assez vite (probablement) elle ne dépassera pas la mienne. – Motti
C'est comme ça que ça fonctionne pour le moment, je suppose, et je ne suis pas sûr qu'il y ait une "solution" pour ça non plus. Malheureusement, il promeut des réponses rapides plutôt que des réponses réfléchies. Je me retrouve souvent à écrire une réponse rapide même si je sais que je vais devoir l'éditer plus tard pour ne pas être complètement coulé. J'ai réfléchi à cela pendant un moment, et une suggestion que j'ai est qu'après qu'une question soit postée, aucune réponse ne sera montrée pendant 10 minutes, et après 10 minutes toutes les réponses écrites dans cette période sont montrées dans un ordre aléatoire avec le même horodatage. Cela pourrait être une bonne idée;) –