QC-CSHCWE078BLOCKEROS command injection
QC-CSHCWE099BLOCKERRessource injection
QC-CSHCWE412BLOCKERUnrestricted Externally Accessible Lock
QC-CSHCWE470BLOCKERUse of externally-controlled (unsafe reflection)
QC-CSHCWE833BLOCKERDeadlock between at least two ressources
QC-CSH000002BLOCKERAn alone throw instruction preceeded by method invocations
QC-CSH000003BLOCKERThe throw instruction fires a new instance of Exception class
QC-CSH000004BLOCKERString comparing : change x=='' to x.IsNullOrEmpty
QC-CSH000005BLOCKERString comparing : change x.Equals('') to x.IsNullOrEmpty
QC-CSH000006BLOCKERString comparing : change Equals(x,'') to x.IsNullOrEmpty
QC-CSH000007BLOCKERString concat : use concat with StringBuilder instead of +. Huge performance impact
QC-CSH000008BLOCKERString comparing : change == or != to Equals()
QC-CSH999999BLOCKERSyntax analysis failure on the source code
QC-CSH000009BLOCKERIn case of MS linq, change xxx to xxxOrDefault to avoid NPE
QC-CSH000010BLOCKERDon't lock on 'this' or 'typeof', see MSDN DEV320 C# Best practices
QC-CSH000011BLOCKERClass name must start with uppercase, and not contain _, see MSDN DEV320 C# Best practices
QC-CSH000012BLOCKERVoid method must not start with get, see MSDN DEV320 C# Best practices
QC-CSH000014BLOCKERDon't invoke method(s) in 'for loop' or 'while loop' condition. Huge performance impact
QC-CSH000015BLOCKERReplace the cast expression by it's 'as' equivalent
QC-CSH999995BLOCKERRecursivity with depth over 1 between method xx and method yy
QC-CSH000001CRITICALOriginal stack trace lost because the catch exception is thrown
QC-CSHCWE476CRITICALNull pointer reference
QC-CSHCWE484CRITICALOmitted Break Statement in Switch
QC-CSH000013CRITICALAvoid GC.Collect() invocation, see MSDN DEV320 C# Best practices
QC-CSH000016CRITICALIn case of MS linq, change SingleOrDefault by FirstOrDefault if no singleton Select
QC-CSH000024CRITICALDefault value should not be used for method arguments
QC-CSH999994CRITICALRecursivity with depth 1 for method xx
QC-CSHCWE390MAJORDetection of error condition without action
QC-CSHCWE392MAJORFailure to report error in status code
QC-CSHCWE481MAJORAssigning instead of comparing
QC-CSHCWE493MAJORCritical public variable without final modifier
QC-CSHCWE584MAJORReturn inside finally block
QC-CSH000017MAJORInstance is created within a loop, huge performance impact
QC-CSH000018MAJORSame instance and method called several times in the same condition, huge performance impact
QC-CSH000019MAJORThe same new XX() is repeated at least twice, use a local instance variable instead, huge performance impact
QC-CSH000020MAJOR.Count()>0 and .Any() are redundant on the same variable, replace by .Any(), more powerful
QC-CSH000021MAJOR.Count()>0 should be replaced by .Any(), more powerful
QC-CSH000022MAJORThe .Where() Linq clause should be placed fisrt
QC-CSH000023MAJORA catch statement must not contain a return statement
QC-CSHCWE252MINORReturn type of function is not tested
QC-CSHCWE500MINORStatic public field not marked final
QC-CSHCWE582MINORArray declared public, final and static
QC-CSHCWE585MINORThe software contains an empty synchronized block
QC-CSHCWE626MINORNull byte interaction error
QC-CSH000025INFOLock statement
QC-CSH999996INFOLocal Cut and Paste Detector in single file