Информация об изменениях

Сообщение Re: Не получается избежать копи-паста. Нужно что-то типа мак от 01.05.2018 14:55

Изменено 01.05.2018 14:56 bnk

Re: Не получается избежать копи-паста. Нужно что-то типа макросов
Здравствуйте, J-son, Вы писали:

JS>Есть ли какой-то способ?


Лямбда?

class ExtWebAPI
{
    public R Execute<R>(Func<R> a)
    {
            R r = default(R);

            int count = 0;
            while (++count < _RetriesCount)
            {
                try
                {
                    r = a();
                    break;
                }
                catch (Exception)
                {
                    ExceptionHandling();
                }
            }

            return r;
    }

    public AParam GetParameter(string aSerialNumber, string aParameterName)
    {
        return Execute(() => _Main.GetParameter(aSerialNumber, aParameterName));
    }


    public AResult OperationStart(string aSerialNumber, string PartNumber, string aOperationCode)
    {
        return Execute(() => _Main.OperationStart(aSerialNumber, PartNumber, aOperationCode));
    }
}
Re: Не получается избежать копи-паста. Нужно что-то типа мак
Здравствуйте, J-son, Вы писали:

JS>Есть ли какой-то способ?


Лямбда?

class ExtWebAPI
{
    public R Execute<R>(Func<R> f)
    {
            R r = default(R);

            int count = 0;
            while (++count < _RetriesCount)
            {
                try
                {
                    r = f();
                    break;
                }
                catch (Exception)
                {
                    ExceptionHandling();
                }
            }

            return r;
    }

    public AParam GetParameter(string aSerialNumber, string aParameterName)
    {
        return Execute(() => _Main.GetParameter(aSerialNumber, aParameterName));
    }


    public AResult OperationStart(string aSerialNumber, string PartNumber, string aOperationCode)
    {
        return Execute(() => _Main.OperationStart(aSerialNumber, PartNumber, aOperationCode));
    }
}