Heim  >  Artikel  >  Backend-Entwicklung  >  SUNWEN-Tutorial – C# für Fortgeschrittene (5)

SUNWEN-Tutorial – C# für Fortgeschrittene (5)

黄舟
黄舟Original
2016-12-19 10:20:281074Durchsuche

Worüber ich jetzt sprechen möchte, sind Bibliotheken (Bibliotheken) und ich möchte lernen, wie man eine DLL-Datei mit C# erstellt. Apropos DLL, und jeder kennt ihn auch oft Es ist das Ziel eines jeden Angriffs, egal was passiert, beginnen wir damit, wie man ein C#-Programm über die Befehlszeile kompiliert und es auf dem Client verwendet >
Dieses Beispiel enthält zwei Dateien, eine ist Factorial.cs, die zur Berechnung der Fakultät einer Zahl verwendet wird, die andere ist DigitCounter.cs, die zur Berechnung der Anzahl der Zahlen im übergebenen String-Parameter verwendet wird.

Wir können die Bibliothek wie folgt im Befehlszeilenmodus erstellen:

csc /target:library /out:Functions.dll Factorial.cs DigitCounter.cs


Lassen Sie uns über die Verwendung jedes Parameters sprechen :

/target:library: Geben Sie dem System an, dass es sich bei der Ausgabe um eine DLL-Bibliothek und nicht um eine ausführbare EXE-Datei handelt.

/out:Functions.dll: Geben Sie den Dateinamen der Ausgabe-DLL an Wenn Sie den ersten Parameter weglassen, ist der Standarddateiname im Allgemeinen der Dateiname der ersten Datei, nämlich Factorial.dll. Als Nächstes erstellen wir eine Datei , die Datei, die diese Bibliothek verwendet, wird als Client-Datei FunctionClient.cs bezeichnet. Nachdem sie erstellt wurde, kompilieren Sie sie mit dem folgenden Sprachnamen:


csc /out:FunctionTest.exe /R:Functions.DLL FunctionClient .cs

Lassen Sie uns über die Verwendung dieser Kompilierungsanweisung sprechen:

/out:FunctionTest.exe: Weisen Sie darauf hin, dass der Name der Ausgabedatei FunctionTest.exe ist

/R:Functions. DLL: Zeigen Sie die zu zitierende Datei an. Wenn sich die Bibliothek nicht im aktuellen Verzeichnis befindet, muss ihr vollständiger Pfad angegeben werden

Ich werde den Code dieser Dateien unten schreiben:

000: // LibrariesFactorial.cs

001: using System;
002:

003: Namespace-Funktionen

004: {
005: öffentliche Klasse Factorial int Calc(int i)
008: {
009: return((i <= 1) ? 1 : (i * Calc(i-1)));
010: }
011: }
012 : }
Dies ist der Code der Factorial.cs-Datei. Laut M$ muss die Bibliothek entsprechend ihrem Namensraum gepackt werden

Das Folgende ist der Inhalt der DigitCounter.cs-Datei:

000: // LibrariesDigitCounter.cs
001: using System;
002:

003: Namespace Functions

004: {

005: öffentliche Klasse DigitCount

006: {
007: öffentliches statisches int NumberOfDigits(string theString)
008: {
009: int count = 0;
010: for ( int i = 0; i < theString.Length; i++ )
011: {
012: if ( Char.IsDigit(theString[ i]) )
013: {
014: count++;
015: }
016: }
018: return count; >Beachten Sie, dass der Namespace in diesem Beispiel mit dem ersten übereinstimmen sollte, da sie sich in derselben Bibliothek befinden. Die NumberOfDigits-Methode berechnet die Anzahl der Zahlen im Parameter.

Die dritte Datei ist FunctionClient.cs


Wir wissen, dass eine einmal erstellte Bibliothek von anderen Klassen verwendet werden kann (Unsinn, wie könnte man sie sonst als Bibliothek bezeichnen? Unten) Das C#-Programm nutzt die Klassen in der Bibliothek wir haben gerade erstellt.

000: // LibrariesFunctionClient.cs
001: using System;
003: class FunctionClient
004: {
005 : public static void Main(string[] args)

006: {

007: Console.WriteLine("Function Client");

008:

009: if ( args.Length == 0 )
010: {

011: Console.WriteLine("Usage: FunctionTest ... ");

012: return;
013: }
014:
015: für ( int i = 0; i < args.Length; i++ )
016: {
017: int num = Int32.Parse(args[i]);
018: Console.WriteLine(
019: „Die Ziffernanzahl für String [{0}] ist [{1}]“,
020: args[i],
021: DigitCount. NumberOfDigits(args[i])); >022: Console.WriteLine(
023: „Die Fakultät für [{0}] ist [{1}]“,
024: num,
025: Factorial.Calc(num)
026: }
027: }
028: }
In Zeile 002 gibt ein using Functions einen Verweis auf die Functions.DLL-Klasse an.

Wenn wir den folgenden Befehl eingeben In der Befehlszeile können wir die Ausgabe sehen:


FunctionTest 3 5 10

Ausgabe:

Function Client

Die Ziffernanzahl für String [3] ist [1]

Die Fakultät für [3] ist [6]

Die Ziffernanzahl für Zeichenfolge [5] ist [1 ]

Die Fakultät für [5] ist [120]

Die Ziffernanzahl für Zeichenfolge [10] ist [2]

Die Fakultät für [10] ist [3628800 ]

Hinweis: Wann Wenn Sie diese .EXE-Datei ausführen, kann sich die DLL-Datei, auf die sie verweist, im aktuellen Verzeichnis, einem Unterverzeichnis oder in der Umgebungsvariablen CORPATH befinden. Die Umgebungsvariable CORPATH befindet sich in der .NET-Umgebung. Der Klassenpfad wird verwendet, um das System bei der Suche nach Klassen zu unterstützen. Um es ganz klar auszudrücken: Es ist CLASSPATH in Java. Sie verstehen, haha
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn