Bonjour à tous,

Ma question peut paraître stupide, mais est-il possible de faire que le compilateur supprime les méthodes vides et leurs appels, dans le code généré, comme un compilateur C++ peut le faire ?

J'ai regardé un peu les options dans Visual Studio et les options du compilateur en ligne de commande, je n'ai rien trouvé...

Pourquoi me demanderez-vous ? Dans mon cas c'est par exemple un logger fait maison. Je voudrais qu'il ne soit actif qu'en mode Debug.
Voulant éviter de mettre des #if DEBUG un peu partout dans mon code je procède ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
#if DEBUG
 
public sealed class LogWriter
{
  // [...]
 
  public Info(string messageFormat, params object[] args)
  {
    this.writer.Write(messageFormat, args);
  }
 
  // [...]
}
 
#else
 
public sealed class LogWriter
{
 
  // [...]
 
  public Info(string messageFormat, params object[] args) { }
 
  // [...]
}
 
#endif
J'aimerai bien éviter ces appels de méthodes inutiles.

Meric