Solo lectura en C#

En C#, una palabra clave de solo lectura es un modificador que se usa de las siguientes maneras:

1. Campos de solo lectura:En C#, puede declarar un campo usando el modificador de solo lectura. Indica que la asignación a los campos es solo la parte de la declaración o en un constructor a la misma clase. Dichos tipos de campos solo se pueden asignar o reasignar varias veces solo en la declaración o en un constructor. No se asignan después de la salida del constructor. Si el modificador de solo lectura se usa con un campo de tipo de valor, entonces el campo es inmutable. Y si el modificador de solo lectura se usa con un campo de tipo de referencia, entonces el modificador de solo lectura evita que el campo sea reemplazado por las diferentes instancias del tipo de referencia, aquí el modificador de solo lectura no impide que los datos de instancia del campo se modifiquen a través de la lectura. -único campo. En los constructores estáticos y de instancias, puede pasar un campo de solo lectura como un parámetro de salida o referencia.

Ejemplo:

// C# program to illustrate
// how to create a readonly field
using System;
  
class GFG {
  
    // readonly variables
    public readonly string str1;
    public readonly string str2;
  
    // Readonly variable
    // This variable is 
    // initialized at declaration time
    public readonly string str3 = "gfg";
  
    // The values of the readonly
    // variables are assigned
    // Using constructor
    public GFG(string a, string b)
    {
  
        str1 = a;
        str2 = b;
        Console.WriteLine("Display value of string 1 {0}, "
                         + "and string 2 {1}", str1, str2);
    }
  
    // Main method
    static public void Main()
    {
        GFG ob = new GFG("GeeksforGeeks", "GFG");
    }
}

Producción:

Display value of string 1 GeeksforGeeks, and string 2 GFG

Aquí, el valor de str1 y str2 se asigna en el constructor.

2. Estructura de solo lectura: en la estructura de solo lectura, el modificador de solo lectura indica que la estructura dada es inmutable. Cuando crea una estructura de solo lectura, es necesario usar un modificador de solo lectura con sus campos, si no hace esto, el compilador dará un error.

Ejemplo:

// C# program to illustrate how 
// to create a readonly structure
using System;
  
// Readonly structure
public readonly struct Author
{
  
    public readonly string Name { get; }
    public readonly int Article { get; }
    public readonly string Branch { get; }
    public Author(string name, int article, string branch)
    {
  
        this.Name = name;
        this.Article = article;
        this.Branch = branch;
    }
}
  
class GFG {
  
    // Main method
    static public void Main()
    {
        Author a = new Author("Rohit", 67, "CSE");
        Console.WriteLine("Author name: " + a.Name);
        Console.WriteLine("Total articles: " + a.Article);
        Console.WriteLine("Branch name: " + a.Branch);
    }
}

Producción:

Author name: Rohit
Total articles: 67
Branch name: CSE

3. Miembros de solo lectura: esta característica se introdujo en C# 8.0. En esta función, puede usar un modificador de solo lectura para cualquier miembro de la estructura. Este modificador de solo lectura especifica que el miembro no puede modificar. Es mejor que aplicar toda la estructura de solo lectura.

Ejemplo:

// C# program to illustrate how 
// to create a readonly member
using System;
  
public struct Customer
{
  
    public string Name { get; }
    public int Price { get; }
  
    // Readonly member
    public readonly string Product { get; }
  
    public Customer(string name, string product, int price)
    {
  
        this.Name = name;
        this.Product = product;
        this.Price = price;
    }
}
  
class GFG {
  
    // Main method
    static public void Main()
    {
        Customer a = new Customer("Sumit", "Mobile Phone", 2398);
        Console.WriteLine("Customer name: " + a.Name);
        Console.WriteLine("Product: " + a.Product);
        Console.WriteLine("Price: " + a.Price);
    }
}

Producción:

Customer name: Sumit
Product: Mobile Phone
Price: 2398

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *