CA1819: Properties should not return arrays
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at CA1819: Properties should not return arrays.
TypeName|PropertiesShouldNotReturnArrays|
|CheckId|CA1819|
|Category|Microsoft.Performance|
|Breaking Change|Breaking|
A public or protected property in a public type returns an array.
Arrays returned by properties are not write-protected, even if the property is read-only. To keep the array tamper-proof, the property must return a copy of the array. Typically, users will not understand the adverse performance implications of calling such a property. Specifically, they might use the property as an indexed property.
To fix a violation of this rule, either make the property a method or change the property to return a collection.
Attributes can contain properties that return arrays, but cannot contain properties that return collections. You can suppress a warning that is raised for a property of an attribute that is derived from the System.Attribute class. Otherwise, do not suppress a warning from this rule.
Description
The following example shows a property that violates this rule.
Code
Comments
To fix a violation of this rule, either make the property a method or change the property to return a collection instead of an array.
Description
The following example fixes the violation by changing the property to a method.
Code
Description
The following example fixes the violation by changing the property to return a
T:System.Collection.ObjectModel.ReadOnlyCollection.
Code
Description
You might want to allow the consumer of the class to modify a property. The following example shows a read/write property that violates this rule.
Code
Comments
The following example fixes the violation by changing the property to return a T:System.Collection.ObjectModel.Collection.
Code