A public or protected method has a name that starts with Get, takes no parameters, and returns a value that is not an array.
The thing is, even the documentation for this rule admits that there are a lot of situations where you wouldn't want to change a method following this pattern into a property.
The method performs a time-consuming operation.
The method performs a conversion.
The Get method has an observable side effect.
The order of execution is important.
Calling the method two times in succession creates different results.
The method is static but returns an object that can be changed by the caller.
The method returns an array.
This rule thinks it's encouraging developers to choose the right paradigm when they might have defaulted to using the wrong one, but I think it's more likely to cause developers to switch to using a property when it's not really appropriate (because it's easier to tell Resharper to change it than it is to write up a justification). This is likely to cause more costly refactoring down the line.
CA1024 appears when:
The thing is, even the documentation for this rule admits that there are a lot of situations where you wouldn't want to change a method following this pattern into a property.
This rule thinks it's encouraging developers to choose the right paradigm when they might have defaulted to using the wrong one, but I think it's more likely to cause developers to switch to using a property when it's not really appropriate (because it's easier to tell Resharper to change it than it is to write up a justification). This is likely to cause more costly refactoring down the line.
Thoughts?