gendarme
gendarme copied to clipboard
Gendarme is a extensible rule-based tool to find problems in .NET applications and libraries. Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET) and looks fo...
Both Bad example and Good example reference a variable/parameter `obj ` not present. The the Bad example should probably be changed to `value` and the Good example from `obj ==...
**Gendarme v2.10.0.0** When I try from gendarme-wizard, got below error in **Analysis Results** page. Stack trace: Microsoft.Cci.Pdb.PdbDebugException: Unknown custom metadata item kind: 6 at Microsoft.Cci.Pdb.PdbFunction.ReadCustomMetadata(BitAccess bits) at Microsoft.Cci.Pdb.PdbFunction..ctor(String module, ManProcSym...
In the rule https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Performance.AvoidConcatenatingCharsRule(2.10) it is said that boxing is used on parameters of value-type. However, here http://programmers.stackexchange.com/questions/266369/should-i-use-tostring-when-concatenating-string-and-integer-variables-in-c it is actually shown as false positive, since all of the arguments...
Is it possible to detect unhandled exceptions with Gendarme? I want to see if none of the callers catch an exception of a method which throws, causing an uncaught exception...
The code down below triggers the AvoidRepetitiveCallsToPropertiesRule, however there is no reason to cache the property sins we always return before a second call to the property is made. ```...
Code sample ( https://gist.github.com/3736634 ): ``` public class GenericClassWithDisposableField : IDisposable { private IDisposable dataTable; public void Dispose() { dataTable.Dispose(); } } [Test] public void GenericClass_Disposal() { AssertRuleSuccess(); } ```...
The AvoidUncalledPrivateCodeRule fires on events and properties (`add_`, `remove_`, `get_`, `set_`). It is quite common to have an event which only utilizes `add_` and not `remove_`. `get_` and `set_` are...
The DeclareEventsExplicitlyRule is raised when using a lambda expression for an event. using System; ``` sealed class Test { class TestEventArgs : EventArgs { public TestEventArgs (int x) { this.X...
DoubleCheckLockingRule proposes the use of the volatile keyword when using .NET >= 2.0. This is right but according to http://blogs.msdn.com/b/brada/archive/2004/05/12/130935.aspx using a MemoryBarrier is a better solution. So we need...