2011-01-11 13 views
2

Ist es möglich, eine Konstante zu verwenden, die vom Compiler in Code wie unten definiert wird?Access Compiler Konstanten in Code

#If DEALER_DEBUG = "ID12345" Then 
     If(Dealer.ID = DEALER_DEBUG) Then 
     'Do something 
     End If 
#End If 

Ich bin Batch-Prozesse ausgeführt und ich habe Probleme mit einer der Daten meines Kunden. Ich möchte speziellen Code nur für diesen Kunden hinzufügen, aber ich möchte den Code dort behalten, damit ich die Kunden-ID in Zukunft leicht wechseln kann, sollte ich einen anderen Kunden debuggen müssen.

Der Quellcode von der kompilierten DLL wird dann wie folgt aussehen:

 If(Dealer.ID = "ID12345") Then 
     'Do something 
     End If 
+0

Die VB-Syntax ist bereits hässlich genug, ohne dass diese Art von Spielereien ihren Weg in Code machen :) –

+0

Haha. Einverstanden :-) –

Antwort

4

Nr Compiler-Direktiven sind genau das, Richtlinien für den Compiler. Sie sind nicht im generierten IL-Code enthalten und können daher zur Laufzeit nicht aufgerufen werden.

+1

Sicher, sie werden nicht als Variablen generiert, aber ich denke, er fragt, ob Sie sie als Präprozessor-Substitution auf die gleiche Weise wie C++ #defines verwenden können. – Rup

+0

Rup, du hast Recht. In der obigen Frage wird die resultierende if-Anweisung tatsächlich zu "If (Dealer.ID =" ID12345 ") Then ..." kompiliert. –

0

Sie können es in der Kompilierung verwenden #If, aber man kann es nicht in der Laufzeit verwenden Wenn

Sie können durch die Verwendung eines # Ihre benutzerdefinierten Compiler Konstanten in den Projekteigenschaften unter Compile->Advanced Compile Options->Custom Constants oder alternativ definieren Const-Anweisung.

Es gibt viele bessere Möglichkeiten, dies zu tun. Ich weiß nicht viel darüber, was genau Sie erreichen wollen, aber Sie sollten vielleicht eine Art Factory-Pattern + Plugins + Config in Betracht ziehen, die es Ihnen ermöglichen, eine Plugin-Assembly für diesen Client bereitzustellen, die zusätzliche Funktionalität ermöglicht.

Es ist wohl viel mehr Arbeit, um eine erweiterbare App zu erstellen, aber wenn Sie solche Dinge finden müssen, ist es viel besser, es von Anfang an erweiterbar zu schreiben, als später zurück zu gehen und zu refaktorieren.

Verwandte Themen