Каков «правильный» способ инициализации делегата C #?

Мне всегда было трудно понять делегатов C #, и поэтому я был очень рад наткнуться на статью logicchild на веб-сайте Code Project под названием «Делегаты C #: шаг за шагом» . У него очень сжатый способ объяснения делегатов C #, и я могу порекомендовать его вам. Однако, пробуя примеры, я вижу, что есть два способа инициализировать делегат, в основном:

    //create a new instance of the delegate class
    CalculationHandler sumHandler1 = new CalculationHandler(math.Sum);
    //invoke the delegate
    int result = sumHandler1(8, 9);
    Console.WriteLine("Result 1 is: " + result);

и

    CalculationHandler sumHandler2 = math.Sum;
    //invoke the delegate
    int result = sumHandler2(8, 9);
    Console.WriteLine("Result 2 is: " + result);

, где математический класс определен как

public class math
{
    public int Sum(int x, int y)
    {
        return x + y;
    }
}

Так что это «правильный» способ и почему?

8
задан DaveInCaz 2 October 2018 в 19:04
поделиться