HomeSearch

C# value Keyword

This C# example program shows the value keyword. Value has a special meaning in properties.
Value. This is a keyword. It is used in properties. In properties in C#, we enjoy a clear and easy-to-read syntax form—and "value" is a part of this.Property
With parameters in a property, we can use the special keyword "value." This way we do not need to specify the type. The type is determined by the enclosing property type.
An example. In this program, each property has a set accessor that uses the value parameter. We see 2 properties, PropertyInt and PropertyString.

PropertyInt: In the first property's set accessor, the value parameter is written to the console.

PropertyString: Here the value is a string. It is checked for a valid state. The program writes the values.

Tip: You can assign the "value" parameter to a new value. We can change a "value" of null to an empty string literal.

NullEmpty String
C# program that uses value keyword using System; class Program { int PropertyInt { get { return 1; } set { Console.WriteLine(value); } } string _backing; string PropertyString { get { return this._backing; } set { if (value == null) { throw new ArgumentNullException("value"); } this._backing = value; } } static void Main() { Program program = new Program(); // Use PropertyInt. program.PropertyInt = 5; Console.WriteLine(program.PropertyInt); // Use PropertyString. program.PropertyString = "test"; Console.WriteLine(program.PropertyString); } } Output 5 1 test
A discussion. The C# specification refers to "value" in its description of Accessors in Properties. On page 481, it states "The implicit parameter of a set accessor" is always value.

Also: It might help with understanding how the C# language works to investigate how "value" is implemented here.

Properties: These are actually compiled into methods such as Set_PropertyInt and Get_PropertyInt.

IL

Then: The set method has a regular formal parameter list. The formal parameter has the identifier "value".

A summary. We examined the value parameter in properties and referenced the language specification. We then discovered the underlying implementation of the value parameter in properties.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
Home
Dot Net Perls