C# Sintaxis básica

C# es un lenguaje de programación orientado a objetos. En el método de programación orientado a objetos, un programa está compuesto por varios objetos que interactúan entre sí. Los objetos del mismo tipo suelen tener el mismo tipo, o en otras palabras, están en la misma clase (class).

Por ejemplo, tomemos el objeto Rectangle (rectángulo). Tiene propiedades length y width. Según el diseño, puede necesitar aceptar estos valores de propiedad, calcular el área y mostrar los detalles.

Veamos la implementación de una clase Rectangle (rectángulo) y aprovechemos para analizar la sintaxis básica de C#:

Ejemplo

using System;
namespace RectangleApplication
{
    class Rectangle
    {
        // Variables miembro
        double length;
        double width;
        public void Acceptdetails()
        {
            length = 4.5;    
            width = 3.5;
        }
        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }
   
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

Pruébalo »

Cuando el código anterior se compila y se ejecuta, produce el siguiente resultado:

Length: 4.5
Width: 3.5
Area: 15.75

usingPalabras clave

La primera declaración en cualquier programa de C# es:

using System;

usingLa palabra clave using se utiliza para incluir espacios de nombres en el programa. Un programa puede contener múltiples declaraciones using.

classPalabras clave

classLa palabra clave class se utiliza para declarar una clase.

Comentarios en C#

Los comentarios se utilizan para explicar el código. El compilador ignora las entradas de comentarios. En un programa de C#, los comentarios multilínea comienzan con/*y terminan con el carácter*/, como se muestra a continuación:

/* 这个程序演示
C# 的注释
使用 */

Los comentarios de una sola línea se representan con//el símbolo. Por ejemplo:

// Esta línea es un comentario

Variables miembro

Las variables son atributos o miembros de datos de una clase, utilizados para almacenar datos. En el programa anterior,Rectanglela clase tiene dos variables miembro llamadaslengthywidth。

Funciones miembro

Una función es una serie de declaraciones que ejecutan una tarea específica. Las funciones miembro de una clase se declaran dentro de la clase. La clase Rectangle de nuestro ejemplo contiene tres funciones miembro: AcceptDetails、GetAreayDisplay。

Instanciar una clase

En el programa anterior, la claseExecuteRectanglees una clase que contiene el métodoMain() y la instanciación de la claseRectangle.

Identificadores

Los identificadores se utilizan para identificar clases, variables, funciones o cualquier otro elemento definido por el usuario. En C#, la denominación de las clases debe seguir las siguientes reglas básicas:

  • Los identificadores deben comenzar con una letra, un guion bajo o@y luego pueden ir seguidos de una serie de letras, dígitos (0-9), guiones bajos (_) y @.
  • El primer carácter de un identificador no puede ser un número.
  • Los identificadores no deben contener espacios en blanco incrustados ni símbolos, como ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \.
  • Los identificadores no pueden ser palabras clave de C#. A menos que tengan un prefijo @. Por ejemplo, @if es un identificador válido, pero if no lo es, porque if es una palabra clave.
  • Los identificadores distinguen entre mayúsculas y minúsculas. Las letras mayúsculas y minúsculas se consideran letras diferentes.
  • No pueden tener el mismo nombre que las bibliotecas de clases de C#.

Palabras clave de C#

Las palabras clave son palabras reservadas predefinidas por el compilador de C#. Estas palabras clave no se pueden usar como identificadores, pero si desea usarlas como identificadores, puede agregar el carácter @ como prefijo delante de la palabra clave.

En C#, algunas palabras clave tienen un significado especial en el contexto del código, como get y set, y se denominan palabras clave contextuales (contextual keywords).

La siguiente tabla enumera las palabras clave reservadas (Reserved Keywords) y las palabras clave contextuales (Contextual Keywords) en C#:

Palabras clave reservadas
abstractasbaseboolbreakbytecase
catchcharcheckedclassconstcontinuedecimal
defaultdelegatedodoubleelseenumevent
explicitexternfalsefinallyfixedfloatfor
foreachgotoifimplicitinin (generic
modifier)
int
interfaceinternalislocklongnamespacenew
nullobjectoperatoroutout
(generic
modifier)
overrideparams
privateprotectedpublicreadonlyrefreturnsbyte
sealedshortsizeofstackallocstaticstringstruct
switchthisthrowtruetrytypeofuint
ulonguncheckedunsafeushortusingvirtualvoid
volatilewhile
Palabras clave contextuales
addaliasascendingdescendingdynamicfromget
globalgroupintojoinletorderbypartial
(type)
partial
(method)
removeselectset

Instrucciones de nivel superior (Top-Level Statements)

En la versión C# 9.0, se introdujo el concepto de instrucciones de nivel superior (Top-Level Statements), un nuevo paradigma de programación que permite a los desarrolladores escribir instrucciones directamente en el nivel superior del archivo, sin necesidad de encapsularlas en métodos o clases.

Características:

  • Sin necesidad de clases o métodos: las instrucciones de nivel superior te permiten escribir código directamente en el nivel superior del archivo, sin necesidad de definir clases o métodos.

  • El archivo como punto de entrada: el archivo que contiene instrucciones de nivel superior se considera el punto de entrada del programa, similar alMainmétodo Main anterior de C#.

  • AutomáticoMainmétodo Main: el compilador genera automáticamente unMainmétodo Main, y las instrucciones de nivel superior comoMainel cuerpo del método Main.

  • Compatibilidad con funciones locales: aunque no es necesario definir clases, las funciones locales aún se pueden definir en el archivo de instrucciones de nivel superior.

  • Mejor legibilidad: para scripts o herramientas simples, las instrucciones de nivel superior ofrecen una mejor legibilidad y concisión.

  • Adecuado para proyectos pequeños: las instrucciones de nivel superior son muy adecuadas para proyectos pequeños o scripts, permitiendo escribir y ejecutar código rápidamente.

  • Compatible con el código existente: las instrucciones de nivel superior se pueden usar junto con el código C# existente, sin afectar el código actual.

Código C# tradicional- Antes de usar las instrucciones de nivel superior, debías escribir un programa de C# de esta manera:

Ejemplo

using System;

namespace MyApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

Código C# con instrucciones de nivel superior- Con las instrucciones de nivel superior, se puede simplificar a:

Ejemplo

using System;

Console.WriteLine("Hello, World!");

Las instrucciones de nivel superior admiten toda la sintaxis común de C#, incluida la declaración de variables, la definición de métodos, el manejo de excepciones, etc.

Ejemplo

using System;
using System.Linq;

// Declaración de variables en instrucciones de nivel superior
int number = 42;
string message = "The answer to life, the universe, and everything is";

// Salida de variables
Console.WriteLine($"{message} {number}.");

// Definir y llamar métodos
int Add(int a, int b) => a + b;
Console.WriteLine($"Sum of 1 and 2 is {Add(1, 2)}.");

// Usar LINQ
var numbers = new[] { 1, 2, 3, 4, 5 };
var evens = numbers.Where(n => n % 2 == 0).ToArray();
Console.WriteLine("Even numbers: " + string.Join(", ", evens));

// Manejo de excepciones
try
{
    int zero = 0;
    int result = number / zero;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Error: " + ex.Message);
}

Consideraciones

  • Restricción de archivos:Las instrucciones de nivel superior solo se pueden usar en un archivo de origen. Si hay varios archivos que usan instrucciones de nivel superior en un proyecto, se producirá un error de compilación.
  • Punto de entrada del programa:Si se utilizan instrucciones de nivel superior, el archivo contendrá implícitamente un método Main y se convertirá en el punto de entrada del programa.
  • Restricción de ámbito:El código en las instrucciones de nivel superior comparte un ámbito global, lo que significa que las variables y métodos definidos en las instrucciones de nivel superior pueden ser accesibles en todo el archivo.

Las instrucciones de nivel superior ofrecen ventajas significativas al simplificar la estructura del código, reducir la dificultad de aprendizaje y acelerar el desarrollo, siendo especialmente adecuadas para escribir programas y scripts simples.

Otras extensiones