C# | Variables locales tipificadas implícitamente – var

Las variables tipificadas implícitamente son aquellas variables que se declaran sin especificar el tipo .NET explícitamente. En la variable tipificada implícitamente, el compilador deduce automáticamente el tipo de la variable en el momento de la compilación a partir del valor utilizado para inicializar la variable. El concepto de variable implícitamente tipada se introduce en C# 3.0. La variable escrita implícitamente no está diseñada para reemplazar la declaración de variable normal, está diseñada para manejar alguna situación de caso especial como LINQ (consulta integrada en el lenguaje).

Pregunta: ¿Por qué se denomina Local?

Respuesta: No está permitido usar var como valor de parámetro o tipo de devolución en el método o definirlo a nivel de clase, etc. porque el alcance de la variable tipificada implícitamente es local .

Ejemplo:

// C# program to illustrate
// implicitly typed local variable
using System;
  
public class GFG {
      
    // declaring and initializing implicitly
    // typed local variable at class level. 
    // It will give compile time error
    var imp = 15;
  
    // Main method
    static public void Main()
    {
  
        // trying to print the value of 'imp'
        Console.WriteLine(GFG.imp);
    }
}

Error de tiempo de compilación:

prog.cs(10,2): error CS0825: la palabra clave contextual `var’ solo puede aparecer dentro de una declaración de variable local

Puntos importantes:

  • Las variables tipificadas implícitamente generalmente se declaran usando la palabra clave var como se muestra a continuación:
    var ivariable = 10; 
  • En las variables escritas implícitamente, no se le permite declarar múltiples var en una sola declaración como se muestra a continuación:
     var ivalue = 20, a = 30; // invalid
  • No está permitido usar var como tipo de campo en el nivel de clase.
  • Está permitido usar la expresión en var como:
    Var b-=39
  • En C#, no se puede declarar una variable tipificada implícitamente sin ninguna inicialización como:
     var ivalue;   // invalid
  • No está permitido usar un valor nulo en una variable escrita implícitamente como:
     var value = null;   // invalid
  • El inicializador no puede contener ningún objeto o colección, puede contener una nueva expresión que incluya un inicializador de objeto o colección como:
    // Not allowed
    var data = { 23, 24, 10};
    
    // Allowed 
    var data = new int [] {23, 34, 455, 65};
    
  • No está permitido inicializar una variable escrita implícitamente con diferentes tipos más de un tipo como:
    // It will give error because
    // the type of the value is different
    // one is of string type and another
    // one is of int type
    var value = "sd" 
    value = new int[]{1, 2, };
    

Ejemplo 1:

// C# program to illustrate the 
// concept of implicitly typed variable 
using System; 
  
public class GFG { 
  
    // Main method 
    static public void Main() 
    { 
  
        // Declaring and initializing  
        // implicitly typed variables 
        var a = 50; 
        var b = "Welcome! Geeks"; 
        var c = 340.67d; 
        var d = false; 
  
        // Display the type of the variables 
        Console.WriteLine("Type of 'a' is : {0} ", a.GetType()); 
  
        Console.WriteLine("Type of 'b' is : {0} ", b.GetType()); 
  
        Console.WriteLine("Type of 'c' is : {0} ", c.GetType()); 
  
        Console.WriteLine("Type of 'd' is : {0} ", d.GetType()); 
    } 
} 
Producción:

Type of 'a' is : System.Int32 
Type of 'b' is : System.String 
Type of 'c' is : System.Double 
Type of 'd' is : System.Boolean

Ejemplo 2:

// C# program to illustrate the
// use of implicitly typed variable
using System;
  
class GFG {
  
    // Main method
    static public void Main()
    {
  
        // implicitly typed variables
        var Base = 13;
        var Height = 20;
        var Area = (Base * Height) / 2;
  
        // Display result
        Console.WriteLine("Height of triangle is: " + Height 
                      + "\nBase of the triangle is: " + Base);
  
        Console.Write("Area of the triangle is: {0}", Area);
    }
}
Producción:

Height of triangle is: 20
Base of the triangle is: 13
Area of the triangle is: 130

Nota: Las variables locales tipificadas implícitamente se pueden usar como una variable local en una función, en foreach y for loop, como un tipo anónimo, en la expresión de consulta LINQ, en la declaración de uso, etc.

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 *