Когда я использовал бы делегата в asp.net?

Вам не нужно do{} while(); для проверок, которые вы хотите сделать здесь, достаточно просто while(){} циклов.

Пожалуйста, попробуйте этот код:

Ps: Если это работает, пожалуйста, не забудьте высказать мой ответ. Удачного кодирования! :)

import java.util.Scanner;

public class GuessNumber {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter name:");
        if (sc.hasNextLine()) {
            String userName = sc.nextLine();
            System.out.println("Hello " + userName + ",");
            System.out.println();
        }

        int secretNum = 5;
        int secretNum2 = 15;
        int guess = 0;

        System.out.println("Guess what is the number 0 to 10: ");

        if (sc.hasNextInt()) {
            guess = sc.nextInt();
        }

        while (secretNum != guess) {
            System.out.println("Please try again\n");
            if (sc.hasNextInt()) {
                guess = sc.nextInt();
            }

        }
        System.out.println("Well done\n");
        System.out.println("Are you ready for the next step?\n");

        System.out.println("Enter Yes or No");
        while (!sc.next().equals("yes") && !sc.next().equals("no"))
        {
            System.out.print("Yes");
        }

        System.out.println("Guess what is the number 11 to 20: ");

        if (sc.hasNextInt()) {
            guess = sc.nextInt();
        }

        while (secretNum2 != guess) {
            System.out.println("Please try again\n");
            if (sc.hasNextInt()) {
                guess = sc.nextInt();
            }

        }

        System.out.println("Congratulations");
        System.out.println();
        System.out.println("The End");

    }
}
9
задан bdukes 11 March 2009 в 15:27
поделиться

8 ответов

bdukes прав относительно событий. Но Вы не ограничены просто использованием делегатов с событиями.

Изучите классический Шаблон "наблюдатель" для большего количества примеров при использовании делегатов. Некоторый текст на шаблоне указывает на модель событий, но с точки зрения изучения сырых данных, Вы не должны использовать события.

Одна вещь помнить: делегат является просто другим типом, который может использоваться и раздаваться подобный Вашим типам примитивов, таким как "интервал". И точно так же, как "интервал", у делегата есть свои собственные специальные характеристики, что можно действовать на в кодировании при потреблении типа делегата.

Для получения действительно большого дескриптора на предмете и на части, он более совершенствуется и подробные аспекты, получите книгу Joe Duffy, Платформа.NET 2.0.

7
ответ дан 4 December 2019 в 09:14
поделиться

Другим быстрым примером первое, что пришло на ум было бы поблочное тестирование с Насмешками Носорога. Много вещей, которые можно сделать с Насмешками Носорога, использует делегатов и лямбда-выражения.

2
ответ дан 4 December 2019 в 09:14
поделиться

Ну, каждый раз, когда Вы обрабатываете событие, Вы используете делегата.

6
ответ дан 4 December 2019 в 09:14
поделиться

Для ответа на второй вопрос сначала я думаю, что это - большой вопрос для StackOverflow!

На первом один пример отсортировал бы. Вид () метод в Списке берет делегата, чтобы сделать сортировку, как делает Находку () метод. Я не огромный поклонник сортировки в базе данных, таким образом, мне нравится использовать Вид () на моих наборах результатов. В конце концов, порядок списка является намного больше проблемы UI (обычно), чем проблема бизнес-правила.

Править: Я добавил свои причины сортировки вне DB к соответствующему вопросу здесь.

Править: Функция сравнения, используемая в программе сортировки, является делегатом. Поэтому при сортировке Списка с помощью.Sort (Сравнение (T)) метод Сравнение (T) метод, Вы передаете функции вида, делегат. Посмотрите.Sort (Сравнение (T)) документация.

3
ответ дан 4 December 2019 в 09:14
поделиться

Можно использовать делегатов каждый раз, когда Вы знаете, что захотите принять некоторые меры, но детали того действия будут зависеть от обстоятельств.

Среди прочего мы используем делегатов к:

  • Сортировка и фильтрация, особенно если пользователь может выбрать между различными критериями сортировки/фильтрации
  • Упрощение кода. Например, длинноватый процесс, где начало и конец всегда являются тем же, но маленький средний бит варьируется. Вместо того, чтобы иметь твердое к чтению, если блок в середине, у меня есть один метод для целого процесса и передача в делегате (Действие) для среднего бита.
  • У меня есть очень полезный метод ToString на моем уровне представления, который преобразовывает набор чего-либо в разделенный запятыми список. Параметры метода являются IEnumerable и делегатом Func к превращению каждого T в наборе в строку. Это работает одинаково хорошо на строковое представление вместе Пользователей их FirstName или для списка Проектов их идентификатором.
2
ответ дан 4 December 2019 в 09:14
поделиться

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

Например.

// In your user control
public delegate void evtSomething(SomeData oYourData);
public event evtSomething OnSomething;

// In the page using your user control
ucYourUserControl.OnSomething += ucYourUserControl_OnSomething;

// Then implement the function
protected void ucYourUserControl_OnSelect(SomeData oYourData)
{
   ...
}
1
ответ дан 4 December 2019 в 09:14
поделиться

Нет ничего специального для asp.net, связанного с делегатами (помимо соображений при использовании асинхронного материала, который является совершенно другим вопросом), таким образом, я укажу на Вас на другие вопросы вместо этого:

Использование делегата: бизнес-приложения

Где я использую делегатов?

1
ответ дан 4 December 2019 в 09:14
поделиться

Недавно я использовал делегатов к "делегированию" проверки полномочий.

общедоступный Func CheckPermission;

Таким образом, функция CheckPermission может быть совместно использована различными средствами управления или классами, сказать это в статическом классе или классе утилит, и все еще управляться централизованная, избежав также Интерфейсного взрыва; просто мысль

1
ответ дан 4 December 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: