找到所有可选参数并将其删除

时间:2010-08-25 12:02:38

标签: visual-studio visual-studio-2010 c#-4.0 optional-parameters

在这里和那里的几个类中使用了可选参数,我开始非常不喜欢它们在某些情况下因重载解决而导致的麻烦,即由于签名冲突而将代理绑定到它们的困难,以及关于方法参数计数的动态调用问题。

如何在Visual Studio IDE(2010)项目中搜索所有文件并找到所有可选参数用法?我可以使用一个聪明的正则表达吗?或者可能使用不支持可选参数的旧版Visual Studio?我试图避免手动扫描项目中的文件的麻烦,因为它可能是令人厌倦和容易出错的。谢谢!

2 个答案:

答案 0 :(得分:6)

你最好的选择可能是反思 - 它应该很容易遍历所有类型的所有成员,他们是方法,并且他们至少有一个可选参数。

那不会代替您,但可以列出所有违规成员。

类似的东西:

foreach (Type tp in currentAssembly.GetTypes())
    foreach (MethodInfo func in tp.GetMethods())
        if(func.GetParameters().Any(p=>p.IsOptional))
            Console.WriteLine(func.ToString());

答案 1 :(得分:1)

虽然这可能不是我倾向于在视觉工作室中查看课堂视图的最佳方式。方括号中显示的类型是可选参数