Gendarme.Rules.Performance.AvoidLargeStructureRule Class
This rule will fire if a value type (struct in C#) is larger than a maximum value (16 bytes by default). This is a problem because, unlike reference types, value types are bitwise-copied whenever they are assigned to a variable or passed to a method. If the type cannot be reduced in size then it should be turned into a reference type (class in C#).

See Also: AvoidLargeStructureRule Members

Syntax

[Gendarme.Framework.Problem("This structure is larger than the recommended size (16 bytes) which can degrade performance.")]
[Gendarme.Framework.Solution("Try to reduce the struct size or change it into a class.")]
public class AvoidLargeStructureRule : Gendarme.Framework.Rule, Gendarme.Framework.ITypeRule

Remarks

This rule is available since Gendarme 2.0

Example

Bad example:

Example

            public struct BigArgb {
            	long a, r, g, b;
            }
            

Example

Good example:

Example

            public sealed class BigArgb {
            	long a, r, g, b;
            }
            

Requirements

Namespace: Gendarme.Rules.Performance
Assembly: Gendarme.Rules.Performance (in Gendarme.Rules.Performance.dll)
Assembly Versions: 2.8.0.0