Как написать правильно еxpression-bodied function member в SharpDevelop

211
09 января 2018, 11:43

Хочу написать второй метод ToString(Object obj) через лямбда выражение:

/// <summary>
/// Позволяет выводить на экран строковые представления объектов.
/// </summary>
public static class Structure
{
    /// <summary>
    /// Возвращает строковое предсталение объекта.
    /// </summary>
    /// <returns>string</returns>
    public static string ToString(Object obj, string s)
    {
        string result = String.Format("{0}: ", obj.GetType().Name);
        var props = GetType().GetProperties();
        for(var i = 0; i < props.Length; i++)
        {
            if (i < props.Length - 1)
            {
                result += String.Format("{0} = {1}, ", props[i].Name, props[i].GetValue(this));
            }
            else
            {
                result += String.Format("{0} = {1}", props[i].Name, props[i].GetValue(this));
            }
        }
        return result + s;
    }
    /// <summary>
    /// Возвращает строковое предсталение объекта.
    /// </summary>
    /// <returns>string</returns>
    public static string ToString(Object obj) => ToString(obj, "");
}

Как написать правильно?

Answer 1

Быстрое гугление показывает, что SharpDevelop не поддерживает C#6,7. Значит, такая запись невозможна.

Answer 2

Ну лямбды как бы вот делаются

 public string ToString(Func<object, string> func)
            {
                return func.ToString();
            }

Вызов

ToString( Height => { return Height.ToString(); } );

Первый параметр это то что принимает как аргумет а второй то что возращаем

Вроде так норм будет

Func<object, string, string> NewToString = (o, e) =>
        {
            return o.ToString();
        };

NewToString(new object g, "Name");

Вроде лямбда есть

READ ALSO
Добавление через код событие кнопки с аргументом

Добавление через код событие кнопки с аргументом

Хочу массиву кнопкам, из 10 кнопок передать в событие OnClick метод Appropriation(i), с аргументом i, который будет увеличиватьсяСуть: кнопка 1 имеет OnClick...

180
В чём разница между Convert.ToString, ToString и (String)?

В чём разница между Convert.ToString, ToString и (String)?

Например есть некая переменная:

254
Необработанное исключение System.Reflection.TargetInvocationException и BackgroundWorker

Необработанное исключение System.Reflection.TargetInvocationException и BackgroundWorker

Изучаю BackgroundWorker, решил попробовать на своей программе (при проверке обновлений), добавив BackgroundWorkerВроде сделал всё примерно как на msdn, но программа...

210
С# Есть ли действительно удобный способ парсинга html?

С# Есть ли действительно удобный способ парсинга html?

Почему все способы парсинга html на с# такие сложные и запарные? Очень долго программировал на ahk, и там можно в одну строку запарсить classname просто...

284