Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wieso werden "Pseudo" .NET Wrapper umständlich & mit statischen Methoden implementiert?
Scavanger
myCSharp.de - Member

Avatar #avatar-3209.jpg


Dabei seit:
Beiträge: 323

Themenstarter:

Wieso werden "Pseudo" .NET Wrapper umständlich & mit statischen Methoden implementiert?

beantworten | zitieren | melden

Ich muss mal kurz Frust ablassen:

Kennt das jemand?
Man hat ein neues Projekt und benötigt eine native Bibliothek, freut sich schon mal das es einen .net Wrapper gibt und dann bekommt man sinngemäß sowas serviert:


int err = FancyMethod(int foo, string bar);
if (err != 0)
     // Fehlerbehandlung hier

Nicht zu vergessen das der ganze Wrapper nur aus statischen Methoden besteht.

Warum macht jemand sowas?
Da kann ich gleich die DLL mit DllImport selber laden, mit Objektorientierung hat das doch nix zu tun.
OK, immerhin muss ich mich nicht mit dem ganzen Marshalling herumschlagen, aber trotzdem nervt mich sowas immer wieder.

So jetzt geht's wieder besser.

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16204

beantworten | zitieren | melden

Das ganze .NET Framework basiert mehr oder minder auf das Wrappen von Win32 APIs und der Abstraktion des Marshalling.
Das Vorgehen ist auch nicht weiter schlimm; sogar recht üblich - auch ich nutze das für einige Projekte in dieser Form (eben für das Kapseln von Signaturen).

Statische Klassen und OOP ist ein ganz anderes Thema.
Aber im Endeffekt ist System.IO ein statisches Wrapper-Konstrukt, das nichts anderes macht, als das, was Du da zeigst.
Das Forum ist aber trotzdem der falsche Platz um Frust abzulassen...
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2143

beantworten | zitieren | melden

Frust wäre beim Erfinder des Wrappers natürlich besser.
Zitat von Scavanger
mit Objektorientierung hat das doch nix zu tun.
Das haben native DLL so an sich :-)
Zitat von Scavanger
Da kann ich gleich die DLL mit DllImport selber laden
Immerhin kannst du dir den Wrapper sparen. Falls der dir die Konvertierung komplizierter Datenstrukturen abnimmt, noch besser.
Und zuletzt, einen Fehlercode abfangen um eine Exception draus zu machen mag Sinn ergeben, oder auch nicht. Kommt auf die Art des Fehlers an und was du damit anfangen willst. Ein switch um den Fehlercode kann schöner aussehen als eine Exception zu behandeln.
private Nachricht | Beiträge des Benutzers