| 193 | | * use `Environment.NewLine` instead of the string constant `"\n"` |
| 194 | | * use `Path.Combine()` instead of string concatenation (with `\` or `/`) to combine directory and file names |
| 195 | | * throw and catch specific exceptions, don't catch generic exceptions ~~`try { ... } catch(Exception ex) {}`~~ |
| 196 | | * use a finally block to make sure that the state of the program is consistent even when Exceptions are thrown |
| 197 | | * if the mouse pointer was changed, set the mouse pointer back to normal in a finally {... } block |
| 198 | | * use `string.Empty` instead of the string constant `""` |
| 199 | | * use `string.IsEmptyOrNull(a)` instead of `if(a!=null && a!="")` |
| 200 | | * check for `InvokeRequired` in methods that manipulate GUI elements in controls |
| 201 | | * instantiate all objects of classes implementing `IDisposable` with the `using(...) { ... }` statement to make sure the object is disposed correctly |
| | 193 | Check out the wiki page containing the [DevelopersBestPractices best practices]. |