(Лямбда-функция может быть или не быть тем, что я ищу, я не уверен)
По сути, я пытаюсь выполнить следующее:
int areaOfRectangle = (int x, int y) => {return x * y;};
но он дает ошибку: "Невозможно преобразовать лямбда-выражение в тип" int ", потому что это не тип делегата"
Более подробная проблема (которая действительно не имеет никакого отношения к вопросу, но я знаю, что кто-то спросит):
У меня есть несколько функций, которые выходят из переопределенного OnLayout и еще нескольких функций, от которых зависит каждый из них. Для удобства чтения и создания прецедента для последующего расширения я хочу, чтобы функции, которые отключались от OnLayout, выглядели одинаково. Для этого мне нужно разделить их и использовать как можно больше:
protected override void OnLayout(LayoutEventArgs levent)
    switch (LayoutShape)
    {
        case (square):
            doSquareLayout();
            break;
        case (round):
            doRoundLayout();
            break;
        etc..
        etc..
    }
void doSquareLayout()
{
    Region layerShape = (int Layer) =>
    {
        //do some calculation
        return new Region(Math.Ceiling(Math.Sqrt(ItemCount)));
    }
    int gradientAngle = (int itemIndex) =>
    {
        //do some calculation
        return ret;
    }
    //Common-ish layout code that uses layerShape and gradientAngle goes here
}
void doRoundLayout()
{
    Region layerShape = (int Layer) =>
    {
        //Do some calculation
        GraphicsPath shape = new GraphicsPath();
        shape.AddEllipse(0, 0, Width, Height);
        return new Region(shape);
    }
    int gradientAngle = (int itemIndex) =>
    {
        //do some calculation
        return ret;
    }
    //Common-ish layout code that uses layerShape and gradientAngle goes here
}
Все примеры, которые я сейчас нахожу, говорят, что вы должны объявить делегата, но я знаю, что видел однострочное объявление лямбда...
