Найдите все дополнительные параметры и удалите их - PullRequest
4 голосов
/ 25 августа 2010

Используя дополнительные параметры в нескольких классах, я начинаю сильно им не нравиться из-за проблем, которые они вызывают в некоторых случаях с разрешением перегрузки, то есть из-за трудностей с привязкой делегатов к ним из-за конфликтов сигнатур, а также проблемы динамического вызова в отношении количества аргументов метода.

Как мне выполнить поиск во всех файлах в моем Visual Studio IDE (2010) проекте и найти все необязательные параметры использования? Был бы умный регулярное выражение, которое я мог бы использовать, возможно? Или, возможно, использовать более старую версию Visual Studio, где дополнительные параметры не поддерживаются? Я пытаюсь избежать хлопот вручную сканировать файлы в проекте, так как это может быть утомительным и подверженным ошибкам. Спасибо!

Ответы [ 2 ]

6 голосов
/ 25 августа 2010

Ваша лучшая ставка может быть отражением - должно быть достаточно просто пройти через все члены всех типов, где они являются методами, и у них есть хотя бы один необязательный параметр.

Это не будет заменятьВы, но могли бы дать вам список всех оскорбляющих участников.

Что-то вроде:

foreach (Type tp in currentAssembly.GetTypes())
    foreach (MethodInfo func in tp.GetMethods())
        if(func.GetParameters().Any(p=>p.IsOptional))
            Console.WriteLine(func.ToString());
1 голос
/ 25 августа 2010

Хотя, возможно, это не лучший способ смотреть на Class View в визуальной студии.Типы, указанные в квадратных скобках, являются необязательными параметрами

...