Definiciones de macros de C# en el preprocesador

Harshit Jindal 12 octubre 2023
  1. Usar la declaración estática using en C#
  2. Utilice la función Wrap en la clase estática de C#
Definiciones de macros de C# en el preprocesador

C# como lenguaje no admite macros. No hay preprocesadores como C y C++.

Sin embargo, C# tiene archivos de proyecto para imitar la funcionalidad del preprocesador y las macros al agregar programas C/C++ antes de compilar dentro de los archivos de proyecto de C#.

Este método puede dar los resultados deseados, pero se desaconseja el uso de estos trucos en producción y, en ocasiones, puede provocar un comportamiento inesperado.

Las versiones más nuevas de C# nos permiten imitar ciertas macros, y su uso debe preferirse a la manipulación de archivos de proyecto de C# con aplicaciones de C/C++. En este tutorial, veremos cómo podemos tener macros como funcionalidad en C#.

Usar la declaración estática using en C#

Podemos omitir escribir el nombre de la clase cada vez con la ayuda de static using declarative. Reducen la reutilización constante de Namespace y class Name por declaración estática.

using static System.Console;  // Note the static keyword

public class Program {
  public static int Main(string[] args) {
    WriteLine("C# macro!!");

    return 0;
  }
}

Producción :

C# macro!!

En el ejemplo anterior, el declarativo estático reduce la reutilización constante de SystemConsole con todos los comandos relacionados con la consola. Proporcionar una macro genial que nos permite escribir mucho menos código.

Podemos usar esto con cualquier biblioteca de C#, haciendo todas esas llamadas de ensamblajes cruzados.

Utilice la función Wrap en la clase estática de C#

Podemos usar macros declarando una clase estática pública y envolviendo las funcionalidades de C# dentro de ella. La inicialización estática ocurrirá antes que el resto del código y ayudará a imitar el aspecto de preprocesamiento de las macros.

using System;
public static class WriteToConsoleExtension {
  public static void WriteToConsole(this object instance, string format, params object[] data) {
    Console.WriteLine(format, data);
  }
}
public class Program {
  public static int Main(string[] args) {
    Program p = new Program();
    p.WriteToConsole("C# macros!! {0}st method", 1);

    return 0;
  }
}

Producción

C# macros!! 1st method

En el ejemplo anterior, pudimos modificar la función del sistema existente renombrada a las macros deseadas. Pero el único problema es que tenemos que llamarlos a través de la variable del programa.

Entonces, si no desea utilizar este método, uno será una mejor opción.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn