Définitions de macros C# dans le préprocesseur

Harshit Jindal 12 octobre 2023
  1. Utiliser le déclaratif statique using en C#
  2. Utiliser la fonction Wrap dans la classe statique C#
Définitions de macros C# dans le préprocesseur

C# en tant que langage ne prend pas en charge les macros. Il n’y a pas de préprocesseurs comme C et C++.

Cependant, C# a des fichiers de projet pour imiter la fonctionnalité et les macros du préprocesseur en ajoutant des programmes C/C++ avant la génération dans les fichiers de projet C#.

Cette méthode peut donner les résultats souhaités, mais l’utilisation de telles astuces en production est fortement déconseillée et, parfois, peut conduire à un comportement inattendu.

Les nouvelles versions de C# nous permettent d’imiter certaines macros, et leur utilisation doit être préférée à la manipulation de fichiers de projet C# avec des applications C/C++. Dans ce tutoriel, nous verrons comment nous pouvons avoir des macros comme des fonctionnalités en C#.

Utiliser le déclaratif statique using en C#

Nous pouvons omettre de taper le nom de la classe à chaque fois à l’aide de static using declarative. Ils réduisent la réutilisation constante de Namespace et class Name par déclaration statique.

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

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

    return 0;
  }
}

Production:

C# macro!!

Dans l’exemple ci-dessus, le déclaratif statique réduit la réutilisation constante de la SystemConsole avec toutes les commandes liées à la console. Fournir une macro sympa qui nous permet d’écrire beaucoup moins de code.

Nous pouvons l’utiliser avec n’importe quelle bibliothèque C#, en effectuant tous ces appels d’assemblages croisés.

Utiliser la fonction Wrap dans la classe statique C#

Nous pouvons utiliser des macros en déclarant une classe statique publique et en y enveloppant des fonctionnalités C#. L’initialisation statique se produira avant le reste du code et aidera à imiter l’aspect de prétraitement des 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;
  }
}

Production

C# macros!! 1st method

Dans l’exemple ci-dessus, nous avons pu modifier la fonction système existante renommée en macros souhaitées. Mais le seul problème est que nous devons les appeler via la variable de programme.

Donc, si vous ne voulez pas utiliser cette méthode, une seule sera un meilleur choix.

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