Question:
Hi All,
Answer1:
If the method uses member variables (that is, fields declared at the class-level), then it must not be static. A compile-time error will occur if you try to declare it static in this case.
On the other hand, if it does not use member variables, you can declare it static. This may result in a small performance improvement.
The larger question is often whether or not you should have a "public static" method. These static methods are interesting because you can call them esentially from anywhere without having an object reference (think like the Math.Round() function). This is often a judgment call. Keep in mind that if you ever need to remove the static modifier in the future, that will be a breaking change to your class that will cause you to have to modify all of the code that calls the method.