我知道这对某些人来说可能是微不足道的,但是当编程在c#中说并且你有一个非常大的数据结构时.我通常通过公式进行分配,以便在控制中设置值,然后以相反的方式进行.
Control1.Text = data.value1;
Control2.SelectedValue = data.value2;
Run Code Online (Sandbox Code Playgroud)
相反:
data.value1 = Control1.Text;
data.value2 = Control2.SelectedValue;
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一个工具可以快速完成.这是假设您有一组非常大的值.
Rob*_*les 16
您可以使用Visual Studio查找和替换来执行交换.这是一个正则表达式对,它将自动执行替换:
查找:^{:b*}{([^=]+)} += +{([^=]+)};
替换:\1\3 = \2;
记得打开正则表达式.这将完全符合您的要求.这也可以封装到宏中.这是我放在一起的示例宏:
Sub SwapAssignments()
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
DTE.Find.FindWhat = "^{:b*}{([^=]+)} += +{([^=]+)};"
DTE.Find.ReplaceWith = "\1\3 = \2;"
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocumentFunction
DTE.Find.MatchCase = False
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
Throw New System.Exception("vsFindResultNotFound")
End If
DTE.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Close()
End Sub
Run Code Online (Sandbox Code Playgroud)
...这将简单地交换当前块中的分配.
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |