国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Backend-Entwicklung C#.Net-Tutorial Eine gekapselte asp.net-Best?tigungscodeklasse

Eine gekapselte asp.net-Best?tigungscodeklasse

Jan 13, 2017 pm 02:20 PM

Die erste überlegung ist, ob diese Attribute des Verifizierungscodes festgelegt werden k?nnen (das hei?t, ob sie in eine Klasse gekapselt und dann durch Offenlegung ?ffentlicher Attribute und Methoden verwendet werden oder ob die Verifizierung direkt im allgemeinen Handler implementiert wird). Das Ergebnis ist leider das letztere... Der darin enthaltene Algorithmus fühlt sich ziemlich gut an, zumindest für jemanden wie mich, der sich kaum mit Algorithmen auskennt, also dachte ich darüber nach, ihn zu kapseln. Sie hat ihn dann schamlos in ihre eigene Klassenbibliothek integriert ^^

Analysieren Sie zun?chst die M?ngel in diesem Code (was sie denkt):
1. Für die prozedurale Programmierung, wenn Sie die Eigenschaften des Best?tigungscodes ?ndern m?chten, z. B. die ?nderung der Schriftgr??e, der Hintergrundfarbe usw Details müssen Sie den relevanten Code im allgemeinen Verarbeitungsprogramm finden und ?ndern. Dieser Code ist jedoch besser. Er trennt die Generierung der Best?tigungscodezeichenfolge und die Bildgenerierung in verschiedene Methoden, sodass die zu ?ndernden Stellen leichter gefunden werden k?nnen.
2. Wenn ich diese Funktion an anderen Stellen anwenden m?chte, beispielsweise in einem Winform-Programm, kann dieser Code nicht in Form einer Komponente (einer DLL) wiederverwendet, sondern kopiert, eingefügt und ge?ndert werden ...
3. Ich habe nicht festgestellt, dass der Best?tigungscode nach der Generierung gespeichert wurde (- -!)

Natürlich sind die sogenannten M?ngel relativ, das hei?t, wenn Sie Zeit dafür haben Denken Sie darüber nach und entwerfen Sie dann langsam eine Verifizierungscode-Klasse. Sie kann auf jeden Fall eine relativ gute Klasse sein, aber wenn Sie an einem Projekt arbeiten und das Projekt dringend ist, ist ein solcher Code tats?chlich leistungsf?higer. Die orientierte Entwurfsmustercode-Entkopplung ist nur eine Wolke ~~~

Der n?chste Schritt ist meine Modifikation dieses Codes. Zuerst bestimme ich, welchen Effekt ich m?chte, das hei?t, wie ich ihn verwenden m?chte, nachdem ich ihn gekapselt habe. Zun?chst hoffe ich, dass ich bei der Verwendung nur eine neue Verifizierungscode-Instanz erstellen muss (bei Bedarf kann ich verschiedene Attribute des Verifizierungscodes beliebig festlegen) und dann bestimmte Methoden dieser Instanz aufrufen kann, um Zeichenfolgen zu verwenden , Streams, Bitmap-Objekte bzw. Byte. Erhalten Sie diesen Verifizierungscode in Form eines Arrays (beachten Sie, dass diese Verifizierungscode-Klasse nicht die Funktion zum Speichern des Verifizierungscodes im Kontext enth?lt. Ich pers?nlich bin der Meinung, dass dies das Generieren des Verifizierungscodes ist und das Speichern des Verifizierungscodes im Kontext sind zwei verschiedene Funktionen. Es ist nicht erforderlich, diese Funktion in der Verifizierungscode-Klasse hinzuzufügen. In diesem Fall wird der Code im allgemeinen Verarbeitungsprogramm ?u?erst einfach. Erstellen Sie zun?chst einfach einen Best?tigungscode mit new, rufen Sie dann die Methode auf, um den Best?tigungscode in Form einer Zeichenfolge zu erhalten, und speichern Sie ihn dann morgens und nachmittags . Ob es in der Sitzung oder im Cookie vorhanden ist Es kommt nach Bedarf, und die Verifizierungscode-Klasse kümmert sich nicht darum, dann ruft sie eine andere Methode auf, um den Verifizierungscode in Form eines Byte-Arrays zu erhalten, damit das Bild über die Methode context.Response.BinaryWrite() ausgegeben werden, d. h. Das allgemeine Verarbeitungsprogramm enth?lt nur drei Codezeilen. Der aufrufende Code lautet ungef?hr wie folgt:

/// <summary> 
/// 獲取驗證碼(一般處理程序入口函數(shù)) 
/// </summary> 
/// <param name="context">當(dāng)前上下文</param> 
public void ProcessRequest(HttpContext context) 
{ 
// 創(chuàng)建驗證碼 
ValidateCode validateCode = new ValidateCode(); 
// 獲取驗證碼(字符串),寫入Session 
context.Session["SomeValidateCode"] = validateCode.GetString(); 
// 輸出驗證碼(圖片) 
context.Response.BinaryWrite(validateCode.GetByteArray()); 
}

PS: Ich erinnere mich, dass der Code zu Beginn meiner Arbeit sehr schlecht geschrieben war (schlechter als jetzt, als ich ihn direkt verwendete). Ich habe nie darüber nachgedacht, den Code zu ?ndern oder zu kapseln, das hat mir mein Meister damals beigebracht und ich war sehr beeindruckt. Ich pers?nlich bin der Meinung, dass es nichts Falsches ist, den Code anderer Leute zu verwenden, um zumindest die Benutzerfreundlichkeit des Codes zu beweisen. Darüber hinaus sind einige Dinge nicht so gut, wie andere denken Wenn Sie sie nutzen m?chten, dürfen Sie den Code anderer Personen nicht blind verwenden. Nehmen Sie am besten die erforderlichen ?nderungen oder Kapselungen entsprechend Ihrer tats?chlichen Situation vor, auch wenn es sich nur um eine einfache Ebene handelt. Wenn das Projekt dringend ist, ist es natürlich Zeitverschwendung. Kurz gesagt, denken Sie nicht darüber nach, verwenden Sie es, sobald Sie es erhalten, und stellen Sie zumindest den Schlüsselcode oder die Gesamtstruktur sicher Der Code ist klar.

Weitere Artikel zum Thema gekapselter asp.net-Best?tigungscode finden Sie auf der chinesischen PHP-Website!

Erkl?rung dieser Website
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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Bedeutung hat das Keyword in C# zum Erstellen von Iteratoren? Welche Bedeutung hat das Keyword in C# zum Erstellen von Iteratoren? Jun 19, 2025 am 12:17 AM

Sie haben KeeKeywordinc#vereinfacht, dass byAutomatischgeneratestatemachinethatenableSlazyEvaluation.1.itallowsReturningEMSonatimeuchteyieldReturn, PaeteExecutionBetweeneachItem, die ISIDEALFORGARGARGEordynamic -Sequences.2.yieldbreakcanBeusus

Was ist Abh?ngigkeitsinjektion (DI) und wie kann sie in C# implementiert werden (z. B. unter Verwendung der integrierten DI in ASP.NET Core)? Was ist Abh?ngigkeitsinjektion (DI) und wie kann sie in C# implementiert werden (z. B. unter Verwendung der integrierten DI in ASP.NET Core)? Jun 30, 2025 am 02:06 AM

Abh?ngigkeitsinjektion (DI) Inc#isAdesignPatternThatenhancesModularit?t, Testbarkeit und Maschinenbarkeit von ClasseSestoreceivedEpendenciesexternally.1.DiPromotesLoosecoUPlingByDecoUplingObjectCreationFromusage.2itsimplifiedeDing ThroughthroughthroughthroughthroughthmockoBectinjectinjectinjectinjekte

Was ist der Zweck der idisposablen Schnittstelle und der Verwendung von Anweisung in C# für das Ressourcenmanagement? Was ist der Zweck der idisposablen Schnittstelle und der Verwendung von Anweisung in C# für das Ressourcenmanagement? Jun 27, 2025 am 02:18 AM

Die Rolle von idisposbar und in C# besteht darin, nicht verwaltete Ressourcen effizient und deterministisch zu verwalten. 1. idisposable bietet die Dispose () -Methode, damit die Klasse klar definieren kann, wie nicht verwaltete Ressourcen freigegeben werden k?nnen. 2. Die Verwendung der Verwendung stellt sicher, dass Dispose () automatisch aufgerufen wird, wenn das Objekt aus dem Zielfernrohr ist, das Ressourcenmanagement vereinfacht und Leckagen vermieden wird. 3. Wenn Sie es verwenden, beachten Sie bitte, dass das Objekt iDisposable implementieren muss, mehrere Objekte deklarieren kann und immer die Verwendung für Typen wie StreamReader verwenden sollte. 4. Zu den h?ufigen Best Practices geh?rt es, sich nicht auf Destruktoren zu verlassen, um die Verschachtelungen korrekt zu behandeln und das Disol -Muster (Dispose) zu implementieren.

Wie verbessern Lambda -Ausdrücke und LINQ (Language Integrated Query) die Datenmanipulation in C#? Wie verbessern Lambda -Ausdrücke und LINQ (Language Integrated Query) die Datenmanipulation in C#? Jun 20, 2025 am 12:16 AM

LambdaexpressionsandlinqSimplifyDatamanipulationInC#ByenablingConcise, lesbar und efficienzidcode.1.lambdaexpressionslowinLineFunctionDefinitions, MakeTeSasierTopassLogicasargumentsfor -filtering, sortieren, aggategategategategorientiert

Was sind nullable Referenztypen (NRTs) in C# 8 und wie helfen sie, NullRreferencexception zu verhindern? Was sind nullable Referenztypen (NRTs) in C# 8 und wie helfen sie, NullRreferencexception zu verhindern? Jun 21, 2025 am 12:36 AM

Nullablereferencetypes(NRTs)inC#8 helpcatchNullReferenceExceptionerrorsatcompiletimebymakingreferencetypesnon-nullablebydefault,requiringexplicitdeclarationfornullability.NRTsmustbeenabledeitherinthe.csprojfilewithenableoratthetopofa.csfileusing#null

Was sind einige h?ufige Fallstricke oder Anti-Muster zu vermeiden, wenn sie sich mit C#entwickeln? Was sind einige h?ufige Fallstricke oder Anti-Muster zu vermeiden, wenn sie sich mit C#entwickeln? Jun 23, 2025 am 12:05 AM

Vier übliche "Anti-Muster" -Probleme in der C# -entwicklung müssen vermieden werden. Erstens führt der unangemessene Gebrauch von Async/Auseait zu Deadlocks oder Leistungsverschlechterungen. Wir sollten uns an das Prinzip der vollst?ndigen Asynchronit?t halten, configureAwait (falsch) konfigurieren und die Benennung standardisieren. Zweitens beeinflusst eine überm??ige Abh?ngigkeit von VAR die Lesbarkeit und deklare und vereint die Teamspezifikationen explizit, wenn der Typ unklar ist. Drittens führt die falsche Verwendung von Entsus- und Ressourcenverwaltung zu Leckagen, und die Anwendungsanweisung sollte korrekt verwendet werden und der iDisposable Standardmodus sollte implementiert werden. Viertens verursacht der Missbrauch statischer Klassen oder Singletons Testschwierigkeiten, und die Abh?ngigkeitsinjektion, die Staatenlosigkeit oder den Lebenszyklus, der von Containern verwaltet wird, sollte Priorit?t einger?umt werden. Das Vermeiden dieser Missverst?ndnisse kann die Qualit?t und Wartung der Code erheblich verbessern.

Wie k?nnen Span  und Speicher  in C# verwendet werden, um die Speicherverwendung zu optimieren und Zuordnungen zu reduzieren? Wie k?nnen Span und Speicher in C# verwendet werden, um die Speicherverwendung zu optimieren und Zuordnungen zu reduzieren? Jun 18, 2025 am 12:11 AM

Span und Speicher verbessern die C# -Leistung durch Reduzierung der Speicherzuweisung. 1.span vermeidet das Array-Kopieren und liefert leichte Verweise auf den vorhandenen Speicher, der für die Parsen von Bin?rprotokollen, Stringoperationen und Hochleistungs-Puffermanagement geeignet ist. 2. Speicher unterstützt das übergeben von Speicherschnitten über asynchrone Methoden, was für Szenarien geeignet ist, in denen flexiblere Lebenszyklen erforderlich sind. 3. Beide reduzieren den GC -Druck, optimieren Sie die Leistung, indem Sie Puffer wiederverwenden und ein vorübergehendes Kopieren vermeiden. 4. Die Span ist auf den Stapel beschr?nkt und kann nicht in Klassen gespeichert oder in asynchronen Methoden verwendet werden. Vermeiden Sie vorsichtig, um Neuzuweisungsoperationen wie Calling.toArray () zu vermeiden.

K?nnen Sie die soliden Prinzipien und ihre Anwendung in C#-objektorientiertem Design erkl?ren? K?nnen Sie die soliden Prinzipien und ihre Anwendung in C#-objektorientiertem Design erkl?ren? Jun 25, 2025 am 12:47 AM

Solides Prinzip sind fünf Entwurfsprinzipien, um die Wartbarkeit der Code und die Skalierbarkeit bei objektorientierter Programmierung zu verbessern. Sie sind: 1. Das Prinzip der einzelnen Verantwortung (SRP) verlangt, dass die Klasse nur eine Verantwortung übernimmt, z. 2. Das ?ffnungs- und Schlussprinzip (OCP) betont, dass die Erweiterung durch Schnittstellen oder abstrakte Klassen unterstützt wird, ohne den ursprünglichen Code zu ?ndern, z. 3. Das Richter -Ersatzprinzip (LSP) erfordert, dass die Unterklasse die übergeordnete Klasse ersetzen kann, ohne die Logik zu zerst?ren, z. 4. Das Interface-Isolationsprinzip (ISP) befürwortet die Definition feink?rniger Schnittstellen, wie z. 5. Das Abh?ngigkeitsinversionsprinzip (DIP) befürwortet die

See all articles