diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml
index 276597641a..4f5f25ff9f 100644
--- a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml
+++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml
@@ -18,6 +18,10 @@
Margin="3"
Visibility="Collapsed"
IsChecked="{sd:OptionBinding addin:Options.AddIEquatableInterface}" />
+
");
+ string otherMethod = selectedMethod.Name == "Equals" ? "GetHashCode" : "Equals";
+
+ addOtherMethod.Content = StringParser.Parse("${res:AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddOtherMethod}", new StringTagPair("otherMethod", otherMethod));
+
addIEquatable.IsEnabled = !selectedClass.BaseTypes.Any(
type => {
if (!type.IsGenericReturnType)
@@ -156,9 +160,11 @@ namespace SharpRefactoring.Gui
codeForMethodBody = builder.ToString().Trim();
- if (equalsOverrides.Any())
- code.Append(indent + "\n" + string.Join("\n", equalsOverrides.Select(item => generator.GenerateCode(item, indent))));
- code.Append(indent + "\n" + generator.GenerateCode(CreateGetHashCodeOverride(currentClass), indent));
+ if (addOtherMethod.IsChecked == true) {
+ if (equalsOverrides.Any())
+ code.Append(indent + "\n" + string.Join("\n", equalsOverrides.Select(item => generator.GenerateCode(item, indent))));
+ code.Append(indent + "\n" + generator.GenerateCode(CreateGetHashCodeOverride(currentClass), indent));
+ }
} else {
StringBuilder builder = new StringBuilder();
@@ -168,7 +174,8 @@ namespace SharpRefactoring.Gui
codeForMethodBody = builder.ToString().Trim();
- code.Append(indent + "\n" + string.Join("\n", CreateEqualsOverrides(currentClass).Select(item => generator.GenerateCode(item, indent))));
+ if (addOtherMethod.IsChecked == true)
+ code.Append(indent + "\n" + string.Join("\n", CreateEqualsOverrides(currentClass).Select(item => generator.GenerateCode(item, indent))));
}
if (Options.AddOperatorOverloads) {
diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs
index 36d93606cd..de8bfb0479 100644
--- a/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs
+++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs
@@ -31,6 +31,11 @@ namespace SharpRefactoring
set { properties.Set("AddIEquatableInterface", value); }
}
+ public static bool AddOtherMethod {
+ get { return properties.Get("AddOtherMethod", true); }
+ set { properties.Set("AddOtherMethod", value); }
+ }
+
public static bool SurroundWithRegion {
get { return properties.Get("SurroundWithRegion", true); }
set { properties.Set("SurroundWithRegion", value); }