In C#, you should declare a method as `static` when it meets the following criteria:

1. **No instance-specific behavior**: The method doesn't rely on any instance-specific state or behavior. It should not access or modify instance fields or properties of the class.
2. **Utility or helper methods**: Static methods are often used for utility or helper functions that perform a specific task and do not depend on the state of an object. Examples include mathematical functions, string manipulation, or input validation.
3. **No need for inheritance or overriding**: If a method doesn't need to be inherited or overridden by subclasses, declaring it as static can be appropriate. Static methods cannot be overridden in derived classes.

Conversely, you should not declare a method as static when:

1. **It depends on instance state**: If a method relies on the state of an object or modifies instance fields or properties, it should not be static.
2. **Inheritance or polymorphism is required**: If a method needs to be inherited, overridden, or participate in polymorphism, it cannot be static.
3. **It implements an interface method**: Interface methods cannot be static, so if your method is an implementation of an interface, it should not be declared static.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence