C# 重新排序构造函数参数

C# 重新排序构造函数参数,c#,visual-studio,unit-testing,parameters,constructor,C#,Visual Studio,Unit Testing,Parameters,Constructor,给定一个类,该类在显式构造函数中接受一组参数。 我要做的是重新排列这些参数。这将在单元测试和我使用该类的任何地方带来很多变化。 在使用该类的整个解决方案中,是否有任何方法、工具或其他东西可以在它们之间切换参数 示例: 改变 进入 您可以通过内置重构来实现这一点(不确定哪些版本的VS可用)。如果您的VS版本中没有此功能,那么自VS 2008起也有可用的重构功能。您可以通过内置重构功能实现此功能(不确定哪些版本的VS可用)。如果在您的VS版本中不可用,那么还有自VS 2008以来可用的重构。重新排序

给定一个类,该类在显式构造函数中接受一组参数。 我要做的是重新排列这些参数。这将在单元测试和我使用该类的任何地方带来很多变化。 在使用该类的整个解决方案中,是否有任何方法、工具或其他东西可以在它们之间切换参数

示例:

改变

进入


您可以通过内置重构来实现这一点(不确定哪些版本的VS可用)。如果您的VS版本中没有此功能,那么自VS 2008起也有可用的重构功能。

您可以通过内置重构功能实现此功能(不确定哪些版本的VS可用)。如果在您的VS版本中不可用,那么还有自VS 2008以来可用的重构。

重新排序参数还值得一提的是,自C#4以来,您始终可以选择使用命名参数。当您有多个具有相同类型的参数,且这些参数在代码中遇到时没有明显指示它们的含义时,这尤其有用(
ClassName(true,false,true)
ClassName(useWidgets:true,TerminateUserError:false,avoidTaxes:true)
。在这种情况下,声明中参数的顺序是不相关的。重新排序参数还值得一提的是,由于C#4,您始终可以选择使用命名参数。当您有多个相同类型的参数,并且在遇到这些参数时没有明显指示其含义时,这一点尤其有用在代码中插入(
ClassName(true,false,true)
ClassName(useWidgets:true,TerminateUserError:false,avoidTaxes:true)
。在这种情况下,声明中参数的顺序是不相关的。
public ClassName(string first,string second, string 3rd)
{
}
Public ClassName(string second, string 3rd, string first)
{
}