Ein paar Allgemeine Fragen

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Ein paar Allgemeine Fragen

    Hallo,
    ich stelle einfach mal ein paar einfache Fragen, die ich mir schon lange stelle:

    Was ist der Unterschied zwischen IO.File.Copy und My.Computer.File.Copy bzw. was sollte man lieber benutzen?

    Was ist der Unterschied zwischen VbCrlf und Vbnewline?

    Was ist der Unterschied zwischen Timer.start und Timer.Enabled = True ?

    Wie ist Nothing definiert bzw. gibt es einen Unterschied zwischen "" und Nothing?

    Gibt es Sachen, die man mit Visual Basic nicht programmieren kann und wenn ja, könnt ihr mal ein kleines Beispiel nennen?

    Hat jemand einen Link zu einem Tutorial zur Programmierung eines Buttons oder einer Textbox?

    Danke für eure Antworten :)
    Mfg
    Vincent

    - IO.File.Copy ist eine statische Methode der Klasse File des .Net Frameworks. Der My-Namespace erstellt soweit ich weiß Visual Basic und man weiß nicht wirklich genau was dieser Namespace so treibt (ist ausserdem in anderen .Net Sprachen NICHT vorhanden). Soltle daher gemieden werden
    - vbNewLine verweist auf vbCrLf. mMn Geschmackssache
    - Timer.Start macht nichts anderes ausser Timer.Enabled = True
    - Man kann mit VB zB kein OS programmieren
    - Such mal im Internetz nach Usercontrol erstellen. Da wirste fündig.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Danke :)

    - Man kann mit VB zB kein OS programmieren
    Aber ich meine eher so Programme, also man könnte mir viel Code auch AntiViren Programm programmieren?

    Hab gerade eben noch mal die Frage hinzugefügt:

    Wie ist Nothing definiert bzw. gibt es einen Unterschied zwischen "" und Nothing?



    Wenn die noch jemand beantwortet, vielen Dank :thumbsup:
    Mfg
    Vincent

    VincentTB schrieb:

    Was ist der Unterschied zwischen IO.File.Copy und My.Computer.File.Copy bzw. was sollte man lieber benutzen?
    My Namespace warum nicht?

    VincentTB schrieb:

    Was ist der Unterschied zwischen VbCrlf und Vbnewline?
    Es gibt keinen - und du solltest keins von beidem Benutzen. Ist alter VB6-Ranz. Nimm stattdessen Environment.NewLine

    VincentTB schrieb:

    Was ist der Unterschied zwischen Timer.start und Timer.Enabled = True ?
    Gibt soweit ich weiß keinen. Außer dass Timer.Start() kürzer ist.

    VincentTB schrieb:

    Wie ist Nothing definiert bzw. gibt es einen Unterschied zwischen "" und Nothing?
    Nothing kann für alle Klassen verwendet werden und gibt bei Abfrage mit dem =-Operator einen Fehler. "" ist dagegen einfach nur ein leerer String - kann also z.B. nicht für Date oder Integer verwendet werden (Option Strict On vorausgesetzt.)

    VincentTB schrieb:

    Gibt es Sachen, die man mit Visual Basic nicht programmieren kann und wenn ja, könnt ihr mal ein kleines Beispiel nennen?
    Man kann mit VB.NET nahezu alles programmieren, was auf Windows selbst laufen soll. Es ist lediglich nicht möglich, native DLLs zu schreiben, die dann die Windowseigenen ersetzen können, um tiefergehende Veränderungen am System vorzunehmen.

    VincentTB schrieb:

    Hat jemand einen Link zu einem Tutorial zur Programmierung eines Buttons oder einer Textbox?
    2 Stichwörter: UserControl, Google ;)
    1. Antivierensoftware mit VB.net - kommt ganz darauf an, was genau man möchte, aber meistens gilt:
    Nein, weil du mit dem Framework nicht allzu viele Möglichkeiten hast, besonders Windowsnahe zu programmieren. Sprich: keine Treiber und Konsorten möglich.

    2. Nothing ist absolut nichts. Nicht Ancii 255 (das Nichts-Zeichen ;) ), nicht Leerzeichen. Schlicht und ergreifend: nichts, gähndende Leere.

    3. @fichz ??? Ich würde auf alle Fälle "Environment.NewLine" verwenden, gerade wenn man den Verweis auf "Microsoft.VisualBasic.dll" löscht, um nicht in Versuchung geführt zu werden ;)
    @schockerjo:
    Timer.Start macht genau das:

    VB.NET-Quellcode

    1. ' System.Windows.Forms.Timer
    2. ''' <summary>
    3. ''' Startet den Zeitgeber.
    4. ''' </summary>
    5. ''' <filterpriority>1</filterpriority>
    6. ''' <PermissionSet>
    7. ''' <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
    8. ''' <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
    9. ''' <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode, ControlEvidence" />
    10. ''' <IPermission class="System.Diagnostics.PerformanceCounterPermission, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
    11. ''' </PermissionSet>
    12. Public Sub Start()
    13. Me.Enabled = True
    14. End Sub


    Siehste zB mit ILSPy.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten

    fichz schrieb:

    Public Shared ReadOnly Property NewLine() As String, etc. bla
    wat? Der Code unten ist Environment.NewLine. Und der alte VB6-Ranz wird nirgends erwähnt.

    C-Quellcode

    1. /// <summary>Gets the newline string defined for this environment.</summary>
    2. /// <returns>A string containing "\r\n" for non-Unix platforms, or a string containing "\n" for Unix platforms.</returns>
    3. /// <filterpriority>1</filterpriority>
    4. [__DynamicallyInvokable]
    5. public static string NewLine
    6. {
    7. [__DynamicallyInvokable]
    8. get
    9. {
    10. return "\r\n";
    11. }
    12. }

    Samus Aran schrieb:

    Der Code unten ist Environment.NewLine.
    In C#, ja. VB.NET interpretiert ja auch kein \n als Zeilenumbruch, wenn du es einfach so eingibst. Leider.

    Die richtige / "orginale" ;) Variante ist natürlich C#. Wenn man sich den IL-Code anschaut:

    Quellcode

    1. .property string NewLine()
    2. {
    3. .custom instance void __DynamicallyInvokableAttribute::.ctor() = (
    4. 01 00 00 00
    5. )
    6. .get string System.Environment::get_NewLine()
    7. }
    8. .method public hidebysig specialname static
    9. string get_NewLine () cil managed
    10. {
    11. .custom instance void __DynamicallyInvokableAttribute::.ctor() = (
    12. 01 00 00 00
    13. )
    14. // Method begins at RVA 0x254ad
    15. // Code size 6 (0x6)
    16. .maxstack 8
    17. IL_0000: ldstr "\r\n"
    18. IL_0005: ret
    19. } // end of method Environment::get_NewLine
    • Was ist der Unterschied zwischen IO.File.Copy und My.Computer.File.Copy bzw. was sollte man lieber benutzen?
      Keines. Nutze die FileInfo- bzw. die DirectoryInfo-Klasse. Ist kein Deut schwieriger, damit zu arbeiten, und ist wesentlich mächtiger, und ist ordentlich dokumentiert. gugge Visual-Studio richtig nutzen

    • Was ist der Unterschied zwischen Timer.start und Timer.Enabled = True
      k.A. - ist glaub egal

    • Wie ist Nothing definiert bzw. gibt es einen Unterschied zwischen "" und Nothing?
      Nothing ist Nothing, ist u.a. also auch kein String. "" ist ein String.

    • Gibt es Sachen, die man mit Visual Basic nicht programmieren kann und wenn ja, könnt ihr mal ein kleines Beispiel nennen?
      MicroController, meine Waschmaschine

    • Hat jemand einen Link zu einem Tutorial zur Programmierung eines Buttons oder einer Textbox?
      Wozu einen Button programmieren? Ist die Button-Klasse nicht gut? Mit Textbox fast das gleiche, nur wäre eine Textbox zu proggen auch noch extrem schwierig.
      Wenn du auf Klicki-Bunti aus bist, nimm Wpf. Und da gugge vlt. Runde Buttons
    @VincentTB:

    ErfinderDesRades schrieb:

    Wie ist Nothing definiert bzw. gibt es einen Unterschied zwischen "" und Nothing?
    Nothing ist Nothing, ist u.a. also auch kein String. "" ist ein String.
    Nicht ganz:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nothing beschreibt im Endeffekt die Tatsache das eine Objektvariable auf keine Adresse einer Instanz zeigt. Dies passiert wenn man eine Klasse nicht mit New instanziiert, aber auf die Objektvariable zugreifen will.
    Bei Wertetypen gilt für Nothing: Wird eine Wertetyp auf Nothing gesetzt nimmt der Wertetyp den für diesen Typ definierten Default Wert ein. Integer=0, String=""...
    http://msdn.microsoft.com/en-us/library/0x9tb07z(v=vs.80).aspx