Details
-
Type:
Code Smell Detection
-
Status: Active
-
Resolution: Unresolved
-
Labels:
-
Message:Consider making method '{0}' a property.
-
Highlighting:
-
Default Severity:Minor
-
Impact:Low
-
Likelihood:Low
-
Covered Languages:C#
-
Irrelevant for Languages:ABAP, C, C++, Cobol, CSS, Flex, HTML, Java, JavaScript, Objective-C, PHP, PL/I, PL/SQL, Python, RPG, Swift, T-SQL, TypeScript, VB.Net, VB6, XML
-
Remediation Function:Constant/Issue
-
Constant Cost:5min
-
Analysis Scope:Main Sources
-
FxCop:UsePropertiesWhereAppropriate,CA1024
Description
Properties are accessed like fields which makes them easier to use.
This rule raises an issue when the name of a public or protected method starts with Get, takes no parameter, and returns a value that is not an array.
Noncompliant Code Example
using System; namespace MyLibrary { public class Foo { private string name; public string GetName() // Noncompliant { return name; } } }
Compliant Solution
using System; namespace MyLibrary { public class Foo { private string name; public string Name { get { return name; } } } }
Exceptions
The rule doesn't raise an issue when the method:
- Is a constructor
- Is an override
- Is an interface implementation
- Is async
- Returns Task, Task<T>
- Is named GetEnumerator, GetAwaiter
Attachments
Issue Links
- links to