Ich habe eine Methode ExecuteQuery
und es wird ein Datatable
Objekt zurückgegeben, das ein Verfahren zum Objekt ist _dataAccess
, wird dies mit, um ein richtige kompilieren System.Data
var Schlüsselwort und mit Namensraum
string query = "select * from UserNeeds where userNeedID =" + item.ParentId;
var result = _dataAccess.ExecuteQuery(query, CommandType.Select);
foreach (var rows in result.Rows)
{
}
verwenden, aber wenn i var geändert und wenn geben Sie Orginal Typ Datatable
es wird comiple Zeit Fehler zeigen, wie wir System.Data
verpasst haben.
Meine Frage ist, wie der Compiler verstehen kann, dass System.Data
der Namensraum ist, wenn wir var
als Typ behalten.
oder warum es zwingt, wenn wir orginal datatype
anstelle von var
verwenden, wie Compiler das gleiche übergibt?
basicaly var ist ein anonymer Typ, den Sie mehr darüber lesen können [hier] (https://msdn.microsoft.com/en-us/library/bb397696.aspx) –
@ m.rogalski: ['var'] (https://msdn.microsoft.com/en-us/library/bb383973.aspx) ist kein anonymer Typ, es ist nicht einmal damit verbunden. Das Schlüsselwort 'var' ist genau wie ein Platzhalter für den tatsächlichen Typ dieser Variablen. Sie brauchen also nicht zu schreiben: Dictionary>> dict = new Dictionary >>(); 'aber Sie kann 'var dict = new Dictionary >>()' verwenden –