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

No code example is currently available or this language may not be supported.

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

No code example is currently available or this language may not be supported.

Description

The following example fixes the violation by changing the property to return a

T:System.Collection.ObjectModel.ReadOnlyCollection.

Code

No code example is currently available or this language may not be supported.

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

No code example is currently available or this language may not be supported.

Comments

The following example fixes the violation by changing the property to return a T:System.Collection.ObjectModel.Collection.

Code

No code example is currently available or this language may not be supported.

CA1024: Use properties where appropriate

Show: