Nicht verwalteter Code grenzen?

Nyxero

Cadet 4th Year
Registriert
Jan. 2015
Beiträge
105
Hallo zusammen :),

ich versuche gerade meine Kenntnisse in C# etwas zu erweitern, in dem ich mir Bestandteile der Sprache und der .Net library anschaue, die mir unbekannt sind.

Relativ schnell bin ich auf gestern auf "verwalteten Code" und "nicht verwalteten Code" gestoßen,
die mich wiederum zu "using-anweisung", "IDesposable" und "DllImport" führten.

Gestern habe ich dann den Unterschied zwischen dem "verwalteten Code" und dem "nicht verwalteten Code" etwas erläutert bekommen. Dadurch habe ich auch den Sinn von "using-anweisung" und "IDesposable" verstanden.

Eben habe ich mir den "DllImport-Attribut" angeschaut, wodurch sich mir eine Frage auftut.
Ich kann dadurch ja "vorhandenen, nicht verwalteten Code" in einer verwalteten Anwendung laden und gekapselt nutzen.

Dadurch stelle ich mir die Frage wo da die Grenzen von C# liegen. Es ist dadurch ja möglich z. B. die WinAPI zu nutzen, die soweit ich weiß in Assabler und C geschrieben sein soll. In welchen Umfang kann ich solchen "nicht verwalteten Code" nutzen? Gibt es da Grenzen?
 
Zuletzt bearbeitet:
Nyxero schrieb:
Hallo zusammen :),
Dadurch stelle ich mir die Frage wo da die Grenzen von C# liegen. Es ist dadurch ja möglich z. B. die WinAPI zu nutzen, die soweit ich weiß in Assabler und C geschrieben sein soll. In welchen Umfang kann ich solchen "nicht verwalteten Code" nutzen? Gibt es da Grenzen?

Die einzigen Grenzen sind die Windows plattform, d.h. mit PInvoke und ggf. DLLImport kannst du praktisch alles native auf Windows plattformen ansteuern, der Code ist dann halt nicht mehr portierbar, also kein Mobile, Linux, Macos oder ähnliches.
Der Overhead ist auch nicht zu unterschätzen, wenn du primär alles nur native Funktionieren aufrufst über PInvoke o.Ä. solltest du ggf. gleich nativ programmieren.

Anmerkung: using/IDisposable sind auch sehr wichtig wenn du nicht mit PInvoke/DLLimport arbeitest, da du auch nicht verwaltete Resourcen im verwalteten Code nutzt, z.B. FileStreams o.Ä.
 
Vielen danke für die schnelle und informative Antwort!
Hat mir sehr geholfen, für das Verständnis.
 
Zurück
Oben