Murray Hertz Ответов: 1

Как я могу использовать callermembername в tostring ()?


(Относительно) новый Callermembername не используется атрибут полезен, но я хотел бы использовать его в некоторых переопределениях, таких как ToString(). Проблема в том, что когда я добавляю его в свой метод, сигнатура изменяется достаточно, чтобы переопределение больше не рассматривалось как таковое.

В Visual Studio 2015 он показывает красную закорючку под ним, указывающую:
Item.ToString(string): no suitable method found to override

Это имеет смысл, поскольку мы добавили строковый аргумент, но, с другой стороны, это не так, потому что это необязательный параметр. Есть ли способ сделать эту работу Короче создания MyToString() и изменения всех ссылок в моем коде на это?

Что я уже пробовал:

class Item
    {
        public override string ToString([CallerMemberName] string caller = null)
        {
            return base.ToString();
        }
    }

1 Ответов

Рейтинг:
0

Graeme_Grant

Его нельзя использовать таким образом. Вот почему появляется сообщение об ошибке. Вы можете прочитать больше о CallerMemberName здесь: Класс CallerMemberNameAttribute (System. Runtime.CompilerServices)[^]