Добавление Windows Phone 8 SDK в Visual Studio 2012

Отличным примером C # для декларативного и императивного программирования является LINQ.

С обязательным программированием вы сообщаете компилятору, что вы хотите, шаг за шагом.

Например , давайте начнем с этой коллекции и выберем нечетные числа:

List<int> collection = new List<int> { 1, 2, 3, 4, 5 };

С императивным программированием мы пройдем через это и решим, чего хотим:

List<int> results = new List<int>();
foreach(var num in collection)
{
    if (num % 2 != 0)
          results.Add(num);
}

Здесь мы говорим:

  1. Создать коллекцию результатов
  2. Пропустить каждое число в коллекции
  3. Проверить номер, если он нечетный, добавьте его к результатам

С декларативным программированием, с другой стороны, вы пишете код, который описывает то, что вы хотите, но не обязательно, как его получить (объявите желаемые результаты, но не шаг за шагом):

var results = collection.Where( num => num % 2 != 0);

Здесь мы говорим «Дайте нам все, где это странно», а не «Пройдите через коллекцию». Проверьте этот элемент, если он нечетный, добавьте его в сбор результатов. "

Во многих случаях код будет представлять собой смесь обоих образцов, так что это не всегда blac K-белый.

7
задан marc_s 9 November 2012 в 18:11
поделиться