Nóta
Teastaíonn údarú chun rochtain a fháil ar an leathanach seo. Is féidir leat triail a bhaint as shíniú isteach nó eolairí a athrú.
Teastaíonn údarú chun rochtain a fháil ar an leathanach seo. Is féidir leat triail a bhaint as eolairí a athrú.
The
The get keyword defines an accessor method in a property or indexer that returns the property value or the indexer element. For more information, see Properties, Automatically implemented Properties, and Indexers.
For simple cases in which a property's get and set accessors perform no other operation than setting or retrieving a value in a private backing field, you can take advantage of the C# compiler's support for automatically implemented properties. The following example implements Hours as an automatically implemented property.
class TimePeriod3
{
public double Hours { get; set; }
}
Important
Automatically implemented properties aren't allowed for interface property declarations or the implementing declaration for a partial property. The compiler interprets syntax matching an automatically implemented property as the declaring declaration, not an implementing declaration.
Often, the get accessor consists of a single statement that returns a value, as it did in the previous example. You can implement the get accessor as an expression-bodied member. The following example implements both the get and the set accessor as expression-bodied members.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
You might find that you need to implement one of the accessor bodies. You can use a field backed property to let the compiler generate one accessor while you write the other by hand. You use the field keyword, added in C# 14, to access the compiler synthesized backing field:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
The following example defines both a get and a set accessor for a property named Seconds. It uses a private field named _seconds to back the property value.
class TimePeriod
{
private double _seconds;
public double Seconds
{
get { return _seconds; }
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
}
_seconds = value;
}
}
}
C# Language Specification
For more information, see the C# Language Specification. The language specification is the definitive source for C# syntax and usage.