Äquivalent von "Dim As String * 1" VB6 zu VB.NET

Habe ich einige VB6-code, der muss migriert werden VB.NET und ich wollte Fragen über diese Zeile des Codes, und sehen, ob es einen Weg gibt, zu implementieren .NET

Dim strChar1 As String * 1

Intellisense sagt mir, dass ein Ende der Anweisung erwartet wird.

  • Das was du da hast ist ein string fester Länge. Wie ist zu erklären, dass ein in VB.NET diskutiert wird here.
  • Ich sah, dass auch, aber persönlich würde ich mich scheuen, von VBFixedStringAttribute. Es ist eines der vielen Dinge, die in der Microsoft.VisualBasic namespace, wurde ein carry-over von VB6, um die Konvertierung zu VB.NET einfacher, wenn .NET zum ersten mal aus, aber IMHO ist es fast immer besser, zu vermeiden, die meisten der Sachen in diesem namespace und entscheiden Sie sich für den entsprechenden "standard" .NET Framework-Funktionen statt. Ich meine, Sie selbst behielt den alten VB6-error-handling-Modell mit On Error, Goto und Resume, obwohl Ausnahmen sind die bestimmt (und leistungsfähiger) Weg, um Fehler zu behandeln in .NET-code 😉
  • Ich habe nicht wirklich sah in die VBFixedStringAttribute-Klasse, um festzustellen, ob es zu benutzen ist eine schlechte Idee oder nicht, aber ich glaube, diese Frage ist ein dupe von der, die ich verlinkt. Ich denke auch, deine Antwort ist besser als diejenigen, die dort gefunden werden, also +1 bis Sie. (und ja, ich Stimme mit Ihnen überein, dass mit dem alten VB6-Stil, ist die Fehlerbehandlung schlechte Wahl in eine VB.NET app!)
  • Warum vermeiden Sie, dass der namespace? Es ist nur eine .Net-assembly, wie jeder andere auch! Es ist ein Teil von VB und es gibt keinen Grund, es nicht zu verwenden. Es ist nicht Weg. Jetzt Microsoft.VisualBasic.Kompatibilität Montage ist ein zu vermeiden, wenn.
  • Stimmt, Microsoft.VisualBasic.Compatibility ist noch viel schlimmer, aber die Microsoft.VisualBasic namespace kann auch Kopfschmerzen verursachen. Teil des Problems ist, dass es ausgelegt ist, so ähnlich wie VB6, dass es wird verwirrend, wenn es tatsächlich nicht die gleiche Weise funktionieren. Zum Beispiel, Sie sogar re-implementiert die meisten der VB6-Datum-und-Zeit-Funktionen (wie DateSerial und Freunde), auch wenn die .NET framework hat bereits Klassen, die all diese Dinge tun. Ein weiteres Beispiel: es ist verwirrend, wenn die Hälfte der code verwendet die old-style - ErrObject und die Hälfte verwendet .NET-Ausnahmen, zum Beispiel.
  • Dies hängt von der Programmierer natürlich, aber zumindest in meiner Erfahrung VB.NET versucht Spiegel Sie die VB6-runtime und die Förderung der gleichen Art der Programmierung nur zu Verwirrung geführt, für die Entwickler hier, und es ermutigt Sie, nicht erforschen den rest .NET oder tatsächlich lernen, wie zu schreiben, Objekt-orientierten code, denn Sie waren zufrieden mit dem "global" - Klassen und-Funktionen VB.NET vorausgesetzt, die sind eigentlich nur Wrapper um native .NET-Klassen. YMMV, natürlich.
  • Verwandte: Wie deklarieren Sie eine Zeichenfolge fester Länge in VB.NET? (Nur mit denn dies hat den besonderen Fall, dass ein einzelnes Zeichen Zeichenfolge.)

Schreibe einen Kommentar