Автор Тема: Что скажите про код?  (Прочитано 1983 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Сомневающийся_В_Unix

  • Ветеран
  • *****
  • Сообщений: 686
  • Карма: -13
  • Пол: Мужской
  • Basic
    • ГотДотНет
Что скажите про код?
« : 23 Октября 2007, 20:32:46 »
C# 3.5 + LINQ.
Код: (C#) [Выделить]
  //атрибуты, которые просто помечают метод класса как метод webservice
    [System.Web.Services.WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public string[] GetCompletionList(string prefixText, int count)
    {
        //создаем динамический список, в котором будем накапливать результат, в .NET generics
        //(некий аналог шаблонов в C++) поддерживаются средой исполнения, а не являются синтаксическим
        //сахаром как в Java
        System.Collections.Generic.List<string> strs = new System.Collections.Generic.List<string>();
        //создаем некоторый контекст для работы с БД, может создаваться как в дизайнере,
        //так и специальной утилитой, автоматически будут созданы сущности в моей программе
        //для работы с сущностями из базы данных
        DataClassesDataContext cont = new DataClassesDataContext(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["MyOfficeConnectionString"].ConnectionString);
        //"var" - в строго типизированном языке программирования?
        //какие то слова отдаленно напоминающие SQL запрос?
        var res = (from tmp in cont.vwGoodsDetaileds
                   where SqlMethods.Like(tmp.FullName, "%" + prefixText + "%")
                   orderby 2
                   select new
                   {
                       Id = tmp.Id,
                       FullName = tmp.FullName
                   }).Take(count);
        //перносим резултат исполнения SQL запроса в динамический список
        foreach (var t in res)
        {
            strs.Add(t.FullName);
        }
        //возвращаем результат
        return strs.ToArray();
    }
компилятор вывел тип пременной var res, уже на этапе разработки, это строго типизированная переменная, ошибки при работе с которой IDE будет показывать также наэтапе разработки. А выражение напоминающие SQL запрос действительно будет пеобразовано в SQL запрос :) Ну и естественно во время отладки код можно пройти по строчкам, просмотреть значения переменных и т. д.
почти 10 лет на оренлинуксе :)