== Why is this an issue?

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

[source,csharp]
----
using System;

namespace MyLibrary
{
    public class Foo
    {
        private string name;

        public string GetName()  // Noncompliant
        {
            return name;
        }
    }
}
----


=== Compliant solution

[source,csharp]
----
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++``

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Consider making method '{0}' a property.


=== Highlighting

The method declaration


endif::env-github,rspecator-view[]
