Skip to main content

The Readonly property in C#

The Readonly property in C# Explained

In C#, readonly is a keyword which is useful to define read-only fields in our applications.  The read-only field values need to be initialized either at the declaration or in a constructor of the same class unlike constant keyword. If we use readonly keyword with fields, then those field values will be evaluated at the runtime.

                

To define read-only fields in C#, we need to use readonly keyword during the declaration of fields in our application and we can use readonly modifier with the numbers, boolean values, strings or with null references.

 

If we use readonly keyword to define the read-only field, then that field value cannot be changed once the constructor execution has finished so we should not use readonly keyword with the fields whose value will be changed at any time.

 

It’s mandatory to initialize read-only field values either at the declaration or in a constructor otherwise we will get compile-time errors.

 

Readonly Keyword Syntax in C#

The following is the syntax of defining read-only fields using readonly keyword in C#.

                 

readonly datatype fieldname=”value”;

The following are the different ways of declaring and initializing read-only fields in C# programming language.

    class User

    {

        // Initialize Read Only Fields

        public readonly string Name = "Musa Sule";

        public readonly string Location;

        public readonly int Age;

        public User()

        {

            Location = "Abuja";

            Age = 42;

        }

        public void SetUserDetails()

        {

            // Compile error if uncommented

            //location = "Guntur";

            //age = 30;

        }

    }  

In case if we uncomment the commented code in SetUserDetails() method, then we will get compile errors because, in C#, the read-only field values can be initialized either during declaration or in a constructor.

 

Readonly Property Example

The following code is an example of defining and using read-only fields in C# with readonly keyword.

 

using System;

namespace CsharpnaijaTutorial

{

    class Person

    {

        // Initialize Read Only Fields

        public readonly string Name = "Musa Sule";

        public readonly string Location;

        public readonly int Age;

        public Person()

        {

            Location = "Abuja";

            Age = 32;

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            Person person = new Person();

            // This will throw compile time error

            //person.Name = "Sakinat Musa";

            Console.WriteLine($"Name: {person.Name}");

            Console.WriteLine($"Location: {person.Location}");

            Console.WriteLine($"Age: {person.Age}");

            Console.WriteLine("\nPress Enter Key to Exit..");

            Console.ReadLine();

        }

    }

}

 

As we earlier discussed, once the read-only field is declared and initialized, then that field value must be same throughout the application.

ReadOnly Property Features

The following are the important features of the read-only variables in C#.

 

  • Read-only fields in C# can be created by using readonly keyword.
  • The readonly fields can be initialized either at the declaration or in a constructor.
  • The readonly field values will be evaluated during the run time in C#.
  • Once values assigned to read-only fields, then those values must be the same throughout the application.

Difference between Constant and ReadOnly

The following are the difference between constant and readonly properties in C#.

·        The constant fields can be created by using const keyword and read-only fields can be created by using readonly keyword.

  • The constant fields can only be initialized during the time of declaration but read-only fields can be initialized either at the declaration or in a constructor.
  • Constant field values will be evaluated during the compile time but read-only field values will be evaluated at run time in c#.

 

Thank you

References

1.     Tutlane

2.     Geeks For Geeks

 


Comments

  1. Best Crypto Casinos » TOP 10 Crypto Casino Sites for 2021
    10. Red 코인카지노 마팀장 Dog Casino - Best Bitcoin 1xbet korean Online Casino With a w88 high withdrawal limit for real money, Bitcoin 카지노 커뮤니티 casinos can't 188bet go wrong with the cryptocurrency

    ReplyDelete

Post a Comment

Popular posts from this blog

Collections in C#

Collections in C# In our previous article , we have learned about how we can use arrays in C#. Arrays in programming are used to group a set of related objects. So one could create an array or a set of Integers, which could be accessed via one variable name. What is Collections in C#? Collections are similar to Arrays, it provides a more flexible way of working with a group of objects. In arrays, you would have noticed that you need to define the number of elements in an array beforehand. This had to be done when the array was declared. But in a collection, you don't need to define the size of the collection beforehand. You can add elements or even remove elements from the collection at any point of time. This article will focus on how we can work with the different collections available in C#. There are three distinct collection types in C#: standard generic concurrent The standard collections are found under the System.Collections. They do not store elemen...

The String.Join Method in C# Explained

The String.Join Method in C#   The string.Join concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member. Overloads of string.Join Method Description Join(Char, Object[]) Concatenates the string representations of an array of objects, using the specified separator between each member. Join(Char, String[]) Concatenates an array of strings, using the specified separator between each member. Join(String, IEnumerable<String>) Concatenates the members of a constructed IEnumerable<T> collection of type String, using the specified separator between each member. Join(String, Object[]) Concatenates the elements of an object array, using the specified separator between each element. Join(String, String[]) Concatenates all the elements of a string array, usi...

System.IO Namesapce in C#

  System.IO Namesapce in C# A  file  is a collection of data stored in a disk with a specific name and a directory path. When a file is opened for reading or writing, it becomes a  stream . The stream is basically the sequence of bytes passing through the communication path. There are two main streams: the  input stream  and the  output stream . The  input stream  is used for reading data from file (read operation) and the  output stream  is used for writing into the file (write operation). From the above definition of file, the C# provides a namespace that enable us to manipulate file in C# called System.IO.   System.IO  is a  namespace  and it contains a standard IO (input/output) types such as classes , structures , enumerations , and  delegates  to perform a read/write operations on different sources like file, memory, network, etc.   System.IO Classes The table below shows differen...