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

NT_*_*NT_ 4 optional-parameters visual-studio-2010 visual-studio c#-4.0

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

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

Kei*_*ith 6

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

这不会替代你,但可以给你一个所有违规成员的清单.

就像是:

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