У меня есть метод ExecuteQuery
и он возвращает Datatable
объект, который представляет собой метод объекта _dataAccess
, это будет компилировать собственно с, используя System.Data
вар ключевое слово и использовать пространство имен
string query = "select * from UserNeeds where userNeedID =" + item.ParentId;
var result = _dataAccess.ExecuteQuery(query, CommandType.Select);
foreach (var rows in result.Rows)
{
}
но если я изменил вар и если вы укажете оригинальный тип Datatable
, он покажет кратковременную ошибку, поскольку мы пропустили System.Data
.
Мой вопрос заключается в том, как компилятор может понять, что System.Data
- это пространство имен, когда мы сохраняем var
как тип.
или почему это заставляет, когда мы используем оригинал datatype
вместо var
, как компилятор передает то же самое?
basicaly var является анонимным типом, который вы можете прочитать об этом [здесь] (https://msdn.microsoft.com/en-us/library/bb397696.aspx) –
@ m.rogalski: ['var'] (https://msdn.microsoft.com/en-us/library/bb383973.aspx) не является анонимным типом, он даже не связан с ним. Значение keword 'var' подобно заполнителю для фактического типа этой переменной. Поэтому вам не нужно писать «Словарь <строка, словарь>> dict = новый словарь <строка, словарь >>();', но вы может использовать 'var dict = new Dictionary >>()' –