Using Properties - C# Programming Guide (2023)

  • Article
  • 8 minutes to read

Properties combine aspects of fields and methods. To the user of an object, a property appears to be a field, accessing the property requires the same syntax. To the implementer of a class, a property is one or two blocks of code, which represent ato takeaccessory and/or adefineaccessory The code block for theto takethe accessor is executed when the property is read; the code block for thedefineaccessor is executed when a value is assigned to the property. a property withoutdefineaccessor is considered read-only. a property withoutto takethe accessor is considered write-only. A property that has both accessors is read and write. In C# 9 and later, you can use aStartaccessory instead of adefineaccessor to make the property read-only.

Unlike fields, properties are not classified as variables. So you can't pass a property likerefereeoforparameter.

Properties have many uses: they can validate data before allowing a change; they can transparently expose data in a class where that data is retrieved from some other source, such as a database; they can perform an action when the data changes, such as raising an event or changing the value of other fields.

Properties are declared in the class block that specifies the access level of the field, followed by the property type, followed by the name of the property, and followed by a code block that declares ato take-accessory and/or adefineaccessory For example:

(Video) C# auto implemented properties 🔐

public class date { private int _month = 7; // Backup storage public int Month { get => _month; set { if ((value > 0) && (value < 13)) { _month = value; } } }}

In this example,Mesis declared as a property so that thedefineaccessor can make sure that theMesthe value is set between 1 and 12.MesThe property uses a private field to track the actual value. The actual location of a property's data is often referred to as the "backing store" of the property. It is common for properties to use private fields as backing storage. The field is marked private to ensure that it can only be changed by calling the property. For more information on public and private access restrictions, seeaccess modifiers.

Auto-implemented properties provide a simplified syntax for simple property declarations. For more information, seeAuto-implemented properties.

The get accessor

the body ofto takeaccessor is similar to that of a method. It must return a value of the property type. the execution ofto takeaccessor is equivalent to reading the value of the field. For example, when you return the private variable ofto takeaccessor and optimizations are enabled, the call to theto takeThe accessor method is built in by the compiler, so there is no method call overhead. However, a virtualto takeThe accessor method cannot be inserted because the compiler does not know at compile time which method can be called at run time. The following example shows ato takeaccessor that returns the value of a private field_name:

class Employee{ private string _name; // or name field public string Name => _name; // a proper name}

When you reference the property, other than as the target of an assignment, theto takeThe accessor is called to read the value of the property. For example:

var employee= new Employee();//...System.Console.Write(employee.Name); // get accessor is called here

Oto takeaccess must end inreturnoto throwinstruction and control cannot flow from the accessor body.


It is a bad programming style to change the state of the object using theto takeaccessory

(Video) C# Properties: Everything You Need To Know

Oto takeThe accessor can be used to return the value of the field or to calculate and return it. For example:

Class Manager { private string _name; public string Name => _name != null ? _name: "NA";}

In the above code segment, if you do not assign a value toNameproperty, it will return the valueTHAT.

The defined accessor

Odefineaccessor looks like a method whose return type isempty. It takes an implicit parameter calledvalor, whose type is the type of the property. In the following example, adefineaccessor is added toNameproperty:

class student { private string _name; // the name field public string Name // the Name property { get => _name; set => _name = value; }}

When you assign a value to the property, thedefineThe accessor is called by an argument that supplies the new value. For example:

(Video) Fields & Properties - C# Beginner Tutorial

var student = new student(); student.Name = "John"; // the defined accessor is called hereSystem.Console.Write(student.Name); // get accessor is called here

It is an error to use the implicit parameter name,valor, for a local variable declaration in adefineaccessory

the initialization accessor

The code to create aStartaccessor is the same as the code to create adefineaccessor, unless you use theStartkeyword instead ofdefine. The difference is that theStartThe accessor can only be used in the constructor or by using aobject initializer.


Properties can be marked aspublic,private,protected,internal,internal protected, oprivate protected. These access modifiers define how users of the class can access the property. EITHERto takemidefineaccessors to the same property can have different access modifiers. For example, himto takemaybepublicto allow read-only access from outside the type, and thedefinemaybeprivateoprotected. For more information, seeaccess modifiers.

A property can be declared as a static property using thestatickeyword. Static properties are available to callers at any time, even if no instances of the class exist. For more information, seeStatic classes and static class members.

A property can be marked as a virtual property using thevirtualkeyword. Virtual properties allow derived classes to override the behavior of properties using theoverlapkeyword. For more information about these options, seeInheritance.

A property that overrides a virtual property can also besealed, specifying that for derived classes it is no longer virtual. Finally, a property can be declaredabstract. Abstract properties do not define an implementation in the class, and derived classes must write their own implementation. For more information about these options, seeAbstract and sealed classes and class members.

(Video) C# getters & setters 🔒


It is wrong to use avirtual,abstract, ooverlapmodifier in an accessor of astaticproperty.


This example demonstrates the instance, static, and read-only properties. Accept keyboard employee name, incrementsNumber of employeesby 1 and displays the name and number of the employee.

public class Employee{ public static int NumberOfEmployees; private static int _counter; private string _name; // A read/write instance property: public string Name { get => _name; set => _name = value; } // A read-only static property: public static int Counter => _counter; // A constructor: public Employee() => _counter = ++NumberOfEmployees; // Calculate the employee number:}

This example demonstrates how to access a property in a base class that is hidden by another property of the same name in a derived class:

public class Employee{ private string _name; public string Name { get => _name; set => _name = value; }}public class Manager: Employee{ private string _name; // Note the use of the new modifier: public new string Name { get => _name; set => _name = value + ", Manager"; }}class TestHiding{ public static void Test() { Manager m1 = new Manager(); // Derived class property. m1.Name = "John"; // Property of the base class. ((Employee)m1).Name = "Mary"; System.Console.WriteLine("The name in the derived class is: {0}", m1.Name); System.Console.WriteLine("The name in the base class is: {0}", ((Employee)m1).Name); }}/* Output: The name in the derived class is: John, Manager The name in the base class is: Mary*/

The following are important points in the above example:

(Video) C# Tutorial for Beginners 22 - Properties in C#

  • The propertyNamein derived class hide propertyNamein the basic class. In such a case, thenuevomodifier is used in the property declaration in the derived class:
    new string public name
  • The cast(Employee)is used to access the hidden property in the base class:
    ((Employee)m1).Name = "Mary";

For more information on how to hide members, see thenew modifier.

Replace property example

In this example, two classes,CubemiSquare, implement an abstract class,Mouldand replace your abstractAreaproperty. Note the use ofoverlapmodifier in the properties. The program takes the side as input and calculates the areas of the square and cube. It also takes the area as input and calculates the corresponding side of the square and the cube.

abstract class form { public abstract double area { get; define; }}class Square : Shape{ public double side; //constructor public Square(double s) => side = s; public override double Area { get => side * side; set => side = System.Math.Sqrt(value); }}class Cube : Shape{ public double side; //constructor public Cube(double s) => side = s; public override double Area { get => 6 * side * side; set => side = System.Math.Sqrt(value / 6); }}class TestShapes{ static void Main() { // Enter the side: System.Console.Write("Enter the side: "); double side = double.Parse(System.Console.ReadLine()); // Calculate the areas: Square s = new Square(side); Cube c = new Cube(side); // Display the results: System.Console.WriteLine("Square Area = {0:F2}", s.Area); System.Console.WriteLine("Area of ​​cube = {0:F2}", c.Area); System.Console.WriteLine(); // Insert area: System.Console.Write("Insert area: "); double area = double.Parse(System.Console.ReadLine()); // Calculate the sides: s.Area = area; c.Area = area; // Display the results: System.Console.WriteLine("Side of square = {0:F2}", s.side); System.Console.WriteLine("Cube Side = {0:F2}", c.side); }}/* Example output: Enter side: 4 Area of ​​square = 16.00 Area of ​​cube = 96.00 Enter area: 24 Side of square = 4.90 Side of cube = 2.00*/

see also

  • properties
  • interface properties
  • Auto-implemented properties


When should I use properties in C#? ›

Use a property when the member is a logical data member. Use a method when: The operation is a conversion, such as Object.

What is the best way to practice C#? ›

C# was created by Microsoft after all, so Microsoft Learn is one of the best ways for beginners to start learning. In this course with free certificate, you'll learn the basic syntax and thought processes required to build simple applications using C# through interactive tutorials.

How to read a properties file in C#? ›

Steps for View PROPERTIES File in C#
  1. Create an instance of Viewer class and load the PROPERTIES file with full path.
  2. Set options to convert PROPERTIES file into PNG format.
  3. Convert file and check output in the current directory.

What is properties in C# with example? ›

ExampleGet your own C# Server

The Name property is associated with the name field. It is a good practice to use the same name for both the property and the private field, but with an uppercase first letter. The get method returns the value of the variable name . The set method assigns a value to the name variable.

Why do we use properties in C# instead of fields? ›

In almost all cases, fields should be private. Not just non-public, but private. With automatic properties in C# 3, there's basically no cost in readability or the amount of code involved to use a property instead of a field.

Should I use properties or fields C#? ›

In C# there you should always prefer properties as the way how to access to your fields. Because only the fields can store a data, it means that more fields class contains, more memory objects of such class will consume. On the other hand, adding new properties into a class doesn't make objects of such class bigger.

Can I learn C# in 2 weeks? ›

These core concepts can be learned in as quickly as one day. Applying C# to them and actually writing simple code can be accomplished within a couple of weeks, depending on how much time you dedicate to learning.

Can I learn C# in a day? ›

Concepts are presented in a "to-the-point" style to cater to the busy individual. With this book, you can learn C# in just one day and start coding immediately. The best way to learn C# is by doing.

How long does it take to master C#? ›

It will take you about two to three months to learn the basics of C#, assuming you devote an hour or so a day to learning. You may learn C# quicker if you study part-time or full-time.

How do I write the code for a properties file? ›

Example of Properties class to create the properties file
  1. import java.util.*;
  2. import*;
  3. public class Test {
  4. public static void main(String[] args)throws Exception{
  5. Properties p=new Properties();
  6. p.setProperty("name","Sonoo Jaiswal");
  7. p.setProperty("email","");

How do I use properties file? ›

The Properties file can be used in Java to externalize the configuration and to store the key-value pairs. The Properties. load() method of Properties class is convenient to load . properties file in the form of key-value pairs.

How do you write values in properties file? ›

How to write a key and values to a properties file in java
  1. First create a File object.
  2. Create a writer object using FileWriter.
  3. Create properties object and add new properties or update existing properties if the properties file exists.
  4. setProperties method do update or add key and values.
Aug 27, 2021

What are the three types of properties? ›

In economics and political economy, there are three broad forms of property: private property, public property, and collective property (also called cooperative property).

What are examples of properties? ›

Property is any item that a person or a business has legal title over. Property can be tangible items, such as houses, cars, or appliances, or it can refer to intangible items that carry the promise of future worth, such as stock and bond certificates.

How many properties are there in C#? ›

There are the following 4 types of Properties: Read-Write Property. Read-Only Property. Static Property.

What is the difference between attribute and property C#? ›

Attributes represents the state of the object. Properties are used synonymously as attributes but its depends on language. Properties are getters and/or setters which are invoked as we read it or assign it. With properties , we can add error handling code to prevent the object to be in unsafe state.

What is the difference between property and variable in C#? ›

In C# any "variable" that has a getter and setter is referred to as a property. A variable has no getters and setters or so that is what the text books say. My programming instructor made us have getters and setters for almost every variable that we created in Java.

What is the difference between properties and methods in C#? ›

Using a method causes something to happen to an object, while using a property returns information about the object or causes a quality about the object to change.

Should you use equals or == C#? ›

In C#, the equality operator == checks whether two operands are equal or not, and the Object. Equals() method checks whether the two object instances are equal or not. Internally, == is implemented as the operator overloading method, so the result depends on how that method is overloaded.

Is C# good for everything? ›

C# is often used to develop professional, dynamic websites on the . NET platform, or open-source software. So, even if you're not a fan of the Microsoft architecture, you can still use C# to create a fully-functional website.

Can a property be static in C#? ›

C# classes, variables, methods, properties, operators, events, and constructors can be defined as static using the static modifier keyword.

Will learning C# get me a job? ›

Software developers with a knowledge of C# are in demand by a wide variety of companies, especially those that build or work with Microsoft applications. C# is a programming language commonly used to build web-based and client-server applications.

Is C# easier then C++? ›

Yes, C# is generally regarded as easier to learn than C++. While both can be complex for absolute beginners, C++ is a more complex language overall, which translates into a steeper learning curve. What is the difference between C++ and Visual C++?

Is C# harder to learn than Python? ›

If you're wondering if C# is easier than Python, the answer is yes: the learning experience of Python is easier, though we have to admit that it's really not bad for C# either. Python also has lots of libraries that make coding a lot easier because you're not doing it from scratch.

Can I learn C# without knowing anything? ›

C# is an object-oriented programming language, which means that you will need to have a basic understanding of concepts like encapsulation, polymorphism, abstraction, inheritance, interfaces, etc. Basic knowledge of C, C++, or Java just to have a slight understanding of the syntax of C#.

Is C# The easiest language? ›

C# is one of the easiest programming languages to learn. C# is a high-level, general-purpose programming language that is easy to read because of its well-defined class hierarchy. It is the perfect language for beginner developers as it will be straightforward to grasp compared to most other languages.

Is C# harder to learn than Java? ›

Java vs C# Summary

Java has a focus on WORA and cross-platform portability and it's easier to learn. C# is used for everything Microsoft, and it's harder to learn. If you are new to coding, it's astonishingly easy to feel overwhelmed.

What is the salary of C# developer? ›

Salary Ranges for C# Developers

The salaries of C# Developers in the US range from $60,000 to $160,000 , with a median salary of $80,000 . The middle 57% of C# Developers makes between $80,000 and $105,000, with the top 86% making $160,000.

What is the hardest programming language? ›

7 Hardest Programming Languages to Learn for FAANG Interviews
  • C++ C++ is an object-oriented programming language and is considered the fastest language out there. ...
  • Prolog. Prolog stands for Logic Programming. ...
  • LISP. LISP stands for List Processing. ...
  • Haskell. ...
  • Assembly Language (ASM) ...
  • Rust. ...
  • Esoteric Languages.
Mar 25, 2021

Is C# faster then Python? ›

As a compiled language, C# converts directly into machine code that a processor can execute. No interpreter needed. In some cases, this means that C# code can run up to 44 times faster than Python. And whilst you can speed up Python's performance significantly with PyPy's JIT compiler, C# still holds its lead here.

What does ${ mean in a properties file? ›

The properties files are processed in the order in which they appear on the command line. Each properties file can refer to properties that have already been defined by a previously processed properties file, using ${varname} syntax.

What is property in coding? ›

A property is a member that provides a flexible mechanism to read, write, or compute the value of a private field. Properties can be used as if they're public data members, but they're special methods called accessors.

How do you validate properties file? ›

You can retrieve the validation properties file in either of the following ways: Use the web UI to perform the following actions: Switch to the Configuration perspective if necessary, by selecting Configuration in the Perspective list. Click Active Profile > Validators.

What is the main benefit of using the properties file? ›

The advantage of using properties file is we can configure things which are prone to change over a period of time without the need of changing anything in code. Properties file provide flexibility in terms of configuration. Sample properties file is shown below, which has information in key-value pair.

What do file properties show? ›

The file properties window shows you information like the type of file, the size of the file, and when you last modified it. If you need this information often, you can have it displayed in list view columns or icon captions.

How do I use environment variables in properties file? ›

To do this you need to prase the values and resolve any environment variables. You can get environment variable fro java using different methods, like: Map<String, String> env = System. getenv();

How do you value properties? ›

The cost approach determines the value of a property by starting with the cost of the land, adding in the property replacement/construction costs, and subtracting physical and functional depreciation. This method is typically used for properties that do not have a large sample size of comparable sales.

What are the 4 types of properties? ›

There are four number properties: commutative property, associative property, distributive property and identity property. Number properties are only associated with algebraic operations that are addition, subtraction, multiplication and division.

What are the 5 types of property? ›

To begin with, firstly, remember these major types of property: Movable property and Immovable property. Tangible property and Intangible property. Private property and Public property.

What are the 6 types of properties? ›

Real property may be classified according to its general use as residential, commercial, agricultural, industrial, or special purpose. In order to understand if you have the right to sell your home, you need to know which rights you possess—or don't possess—in the property.

What are the 7 major types of properties? ›

Investors large and small soon learn there are seven major types of real estate, including residential, office, industrial-warehouse, hospitality, retail, agricultural and the remainder, catch-all category of “special.”

What are the 6 properties? ›

The six properties of multiplication are Closure Property, Commutative Property, Zero Property, Identity Property, Associativity Property and Distributive Property.

What is property pattern in C#? ›

Introduced in C# 9.0. Property pattern: to test if an expression's properties or fields match nested patterns. Positional pattern: to deconstruct an expression result and test if the resulting values match nested patterns. var pattern: to match any expression and assign its result to a declared variable.

What is the use of => in C#? ›

The => token is supported in two forms: as the lambda operator and as a separator of a member name and the member implementation in an expression body definition.

What is property attribute in C#? ›

Attributes are used in C# to convey declarative information or metadata about various code elements such as methods, assemblies, properties, types, etc. Attributes are added to the code by using a declarative tag that is placed using square brackets ([ ]) on top of the required code element.

What is difference between variable and property in C#? ›

In C# any "variable" that has a getter and setter is referred to as a property. A variable has no getters and setters or so that is what the text books say. My programming instructor made us have getters and setters for almost every variable that we created in Java.

What is difference between properties and constructor in C#? ›

Constructors have the same name as the class or struct, and they usually initialize the data members of the new object. Properties enable a class to store, setting and expose values needed for the object. You should create to help in the behavior for the class.

What is the use of properties class? ›

Properties is a subclass of Hashtable. It is used to maintain a list of values in which the key is a string and the value is also a string i.e; it can be used to store and retrieve string type data from the properties file. Properties class can specify other properties list as it's the default.

How many types of property are there in C#? ›

There are the following 4 types of Properties: Read-Write Property. Read-Only Property. Static Property.

What is the another name of properties in C#? ›

Internally, C# properties are special methods called accessors. A C# property has two accessors, a get property accessor or a getter and a set property accessor or a setter. A get accessor returns a property value, and a set accessor assigns a new value.

What are read only and write only properties in C#? ›

A property without a set accessor is considered read-only. A property without a get accessor is considered write-only. A property that has both accessors is read-write. In C# 9 and later, you can use an init accessor instead of a set accessor to make the property read-only.

How to get the property name of a class in C#? ›

To get names of properties for a specific type use method Type. GetProperties. Method returns array of PropertyInfo objects and the property names are available through PropertyInfo.Name property.

Can a property be an object? ›

An object is a collection of properties, and a property is an association between a name (or key) and a value. A property's value can be a function, in which case the property is known as a method. Objects in JavaScript, just as in many other programming languages, can be compared to objects in real life.

What is property class in C#? ›

C# properties are class members that expose functionality of methods using the syntax of fields. They simplify the syntax of calling traditional get and set methods (a.k.a. accessor methods). Like methods, they can be static or instance.

Can you override properties C#? ›

Overriding Properties in C#

We can also override the property of a parent class from its child class similar to a method. Like methods, we need to use virtual keyword with the property in the parent class and override keyword with the porperty in the child class.

What are properties in coding? ›

Properties are attributes or features that characterize classes. While classes are groups of objects, an instance is a specific object that actually belongs to a class.

What are the benefits of using properties? ›

Answer: The advantages of using properties are: Before allowing a change in data, the properties can validate the data. Properties can evidently make visible of data on a class from where that data is actually retrieved such as a database.

What are properties in OOP? ›

Properties in OOP are also able to be looked at as functions, a property houses a function that can have its procedures or variables altered without directly going to the code and editing it. A property can be changed or updated based on user input which allows for a lot of user-interactive programs and applications.


1. Properties vs Fields in C#
2. C# Language Highlights: Properties
3. C# Tutorial for Beginners #23 - Properties
(Kampa Plays)
4. [C#] Properties & Accessors Tutorial with Examples | get, set & value keywords in C#
5. 48. (C# Basics Beginner Tutorial) Property Shortcuts
(Programming Made EZ)
6. 6. (C# Basics Beginner Tutorial) Solution and Project Properties
(Programming Made EZ)
Top Articles
Latest Posts
Article information

Author: Prof. An Powlowski

Last Updated: 04/08/2023

Views: 6448

Rating: 4.3 / 5 (64 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Prof. An Powlowski

Birthday: 1992-09-29

Address: Apt. 994 8891 Orval Hill, Brittnyburgh, AZ 41023-0398

Phone: +26417467956738

Job: District Marketing Strategist

Hobby: Embroidery, Bodybuilding, Motor sports, Amateur radio, Wood carving, Whittling, Air sports

Introduction: My name is Prof. An Powlowski, I am a charming, helpful, attractive, good, graceful, thoughtful, vast person who loves writing and wants to share my knowledge and understanding with you.