Bessere Art der Parameterüberprüfung?

8

Wir verwenden das .NET 2.0-Framework mit C # 3.0 (ich denke, es ist die letzte Version von C #, die auf der 2.0-Version des Frameworks ausgeführt werden kann, korrigiere mich, wenn ich falsch liege).

Ist in C # etwas eingebaut, das diese Art der Parametervalidierung bequemer machen kann?

%Vor%

Diese Art der Parametervalidierung wird ein allgemeines Muster und führt zu einer Menge "fast boilerplate" Code, der in unseren öffentlichen Methoden durchgegangen wird.

Wenn nichts eingebaut ist. Gibt es großartige freie Bibliotheken, die wir benutzen könnten?

    
Deleted 03.08.2010, 12:13
quelle

7 Antworten

4

Ich erstelle normalerweise statische Hilfsmethoden ...

z. B.

%Vor%

Bedeutet, dass Sie Ihren Code auf etwas Ähnliches wie unten zusammenfassen können und es nur ein wenig aufgeräumter machen.

%Vor%

Oder Sie können es als eine Erweiterungsmethode einpacken:

%Vor%

Und verwende wie:

%Vor%

Und wenn Sie sich wirklich schick fühlen, könnten Sie die Parameternamen wahrscheinlich durch Reflexion abfragen. Reflection ist etwas langsam, also würden Sie das nur tun, wenn Sie eine Ausnahme auslösen würden, aber Sie können dadurch nicht ständig den Namen des Literalparameters eingeben.

    
Ian 03.08.2010, 12:26
quelle
4

Sie könnten einen ilweaver wie Post Sharp verwenden, bedenken Sie, dass Compiler als Dienst in C # 5 diese Art von machen wird Sachen eingebaut.

Ich persönlich würde diesen Ansatz nicht empfehlen, es sei denn, das Problem ist groß und muss angegangen werden. In der Regel sind einige der oben beschriebenen und bestätigten Vorbedingungen eine bewährte Methode.

EG:

%Vor%

Sie könnten diese Art von Inhalten auch in Code-Verträge integrieren, die Sie ausführen könnten einige reiche statische Analyse.

    
Sam Saffron 03.08.2010 12:31
quelle
2

Sie können es mit Verträgen tun, aber es ist das gleiche Konzept.

Dies sollte auf jeden Fall gut sein, denn es zeigt deutlich, was Pflichtfelder für eine öffentliche Methode sind.

    
Datoon 03.08.2010 12:15
quelle
2

Es ist nicht in das .Net Framework integriert, aber Sie können Fluent Argument Validation

    
Giorgi 03.08.2010 12:19
quelle
2

Eine ähnliche Idee wie die von Giorgi erwähnte Validierung von Parametern, aber diese vermeidet die redundante Benennung des Parameters und der Strings, die nicht automatisch durch Code-Refactoring-Tools aktualisiert werden können.

Zypern

    
Ben Voigt 03.08.2010 12:27
quelle
1

Um Sams Antwort oben hinzuzufügen, hier ist ein Link, der Ihnen erklärt, wie Sie solche Attribute mit PostSharp implementieren können:

Ссылка

    
theburningmonk 03.08.2010 14:01
quelle