2016-03-23 8 views
0

Ich experimentiere mit der Eingabe eines Kennworts und lasse es als sichere Zeichenfolge speichern. Ich habe den folgenden Code auf MSDN gefunden.Sichere Zeichenfolge in Visual Basic, Importen und Modul

Imports System.Security 

Module Example 
Public Sub Main() 
    ' Define the string value to be assigned to the secure string. 
    Dim initString As String = "TestString" 
    ' Instantiate the secure string. 
    Dim testString As SecureString = New SecureString() 
    ' Use the AppendChar method to add each char value to the secure string. 
    For Each ch As Char In initString 
    testString.AppendChar(ch) 
    Next 
    ' Display secure string length. 
    Console.WriteLine("The length of the string is {0} characters.", _ 
        testString.Length) 
    testString.Dispose() 
End Sub 
End Module 
' The example displays the following output: 
'  The length of the string is 10 characters. 

Allerdings fehlt mir etwas, als wenn ich es in das Element der öffentlichen Klasse einfügen bekomme ich Fehler. Die Fehler sind wie folgt:

'Imports' statements must precede an declarations 

'Module' statements can occur only at file or namespace level 

Ich habe versucht, den Import-Anweisung vor allen dim Aussagen in meinem anderen Code setzen dies nicht helfen, und ich bin auch nicht sicher, wo ich Modul setzen sollte (dh wo ist Datei oder Namespace-Ebene?)

Jede große Hilfe

+3

Ihre Import-Anweisung kann nicht innerhalb einer Klasse sein, es auf den ersten Zeilen der Datei sein muss. Wie Ihre Moduldeklaration kann sie nicht in einer Klasse sein ... Ein Modul ist wie eine Shared-Klasse ... –

+0

Entschuldigung für diesen Kommentar, aber bitte, wenn Sie Zeit haben, schauen Sie sich das an: https://www.youtube. com/watch? v = 8ZtInClXe1Q –

+1

Danke Martin, ich weiß, es ist ein bisschen eine Neuling Frage, aber danke, kleine, aber wichtige Teile von Informationen wie diese scheinen ein Albtraum zu sein, über Google zu finden. –

Antwort

2

die Struktur einer Datei in VB .NET

Ihr Problem kommt von der Tatsache erkennen, dass Sie vielleicht nicht unders tand Was ist eine Klasse, ein Modul, und so weiter ... Also machen wir es überprüfen ...

Eine vollständige Überprüfung der VB .NET: https://msdn.microsoft.com/en-us/library/aa712050%28v=vs.71%29.aspx

Aber es ist irgendwie lang ...

die Anweisung Import

Diese Aussage ist hier zu sagen: „Hey Compiler, ich bin über einige Funktionen, die Sie in dieser Datei finden, bitte verbinden es mit meiner Datei“

so 012.374.bedeutet, dass Sie alle Klassen und Methoden importieren, die im Namespace System.Security enthalten sind.

Wo platzieren?

Diese Anweisung wird am Anfang Ihrer .vb-Datei platziert. Es kann nicht in etwas anderem sein. Die einzigen Dinge, die vorher gehen können, sind die Optionen (wie "Option Strict On", aber wir werden das hier nicht diskutieren ...).

Die Klasse Statement

eine Klasse Erklärung Platzierung bedeutet, dass Sie einen neuen „Entwurf“ für ein Objekt erstellen. Sie sind dabei, seine Methoden, Eigenschaften und Funktionalitäten zu definieren.

Wo platzieren?

Eine Klasse Aussage geht nach den Imports Erklärungen und kann innerhalb eines Namespace, ein Modul oder eine andere Klasse

Das Modul Statement

Ein Modul in VB .NET in nichts anderes, dass ein gesetzt werden Gemeinsame Klasse Wenn Sie festgestellt haben, dass Sie keine Shared Class deklarieren können, müssen Sie stattdessen ein Modul deklarieren.

Was bedeutet das?

Dies bedeutet, dass alles in Ihrem Modul zugänglich ist, ohne dass ein Objekt installiert werden muss. Wenn Ihr Modul die Testmethode bietet:

Public Module MyModule 
    Public Function Test() As String 
    Return "Test" 
    End Function 
End Module 

Dann können Sie diese Methode aufrufen, indem Sie:

'... Anywhere in your code 
MyModule.Test() 

Wo es platzieren?

Ein Modul ist wie eine Klasse, aber es kann nicht innerhalb einer anderen Klasse platziert werden. Es muss in einem Namespace oder in Ihrer Datei platziert werden.

Hope this helps ...

Also im Grunde

Option Strict On 

Imports System.Security 

Namespace MyNamespace 

    Public Module MyModule 
    'My code here 

    Public Class MyClassInsideAModule 
     'My code here 
    End Class 
    End Module 

    Public Class MyClass 
    'My code here 
    Public Class MyClassInsideAClass 
     'My code here 
    End Class 
    End Class 

End Namespace