Pull to refresh

Comments 3

Когда всё это появится в c#?

А то можно и так, наверное

using System;

public static class Logger
{
    public static int Log(Func<int> expression)
    {
        try
        {
            int result = expression();
            Console.WriteLine($"Result: {result}");
            return result;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
            throw;
        }
    }
}

public static class Program
{
    public static int loggedWorkflow()
    {
        return Logger.Log(() =>
        {
            int x = 42;
            int y = 43;
            int z = x + y;
            return z;
        });
    }

    public static void Main(string[] args)
    {
        int result = loggedWorkflow();
        Console.WriteLine($"Final result: {result}");
    }
}

Не знаю. Ходят слухи, что команда C# хочет что-то подобное затащить, но пока это только слухи, и не очень понятно, в каком объёме будут затаскивать.

С другой стороны — проект на F# вполне может держать в одном солюшене вместе с проектами на C#, так что уже сейчас можно писать, скажем, чистую бизнес-логику на F#, а инфраструктуру — на C#. Многие именно так и делают.

так у вас совсем не то же самое. надо ж после каждой строчки вывести лог.

Sign up to leave a comment.

Articles