2009-04-08 13 views
1

Ich frage mich, ob jemand mir ein gutes Beispiel für die Verwendung von Zeigern in C# in .NET geben kann und warum Sie Zeiger verwendet haben?Verwendungen von C# -Zeigern in .Net

+0

Was meinen Sie mit "Verwenden von Zeigern", versuchen Sie, nicht verwalteten Code aufzurufen? –

+0

Ich lerne gerade über Zeiger und wundere mich, wie sie auf Web-Entwicklung anwenden könnten. Da ich in .Net arbeite, dachte ich, ich würde es darauf beschränken. – madcolor

Antwort

5

Dies ist nicht wirklich eine Frage zu ASP.NET spezifisch.

Wenn Sie Zeiger in .NET verwenden, ist der vorherrschende Grund, dass Sie ein Interop-Szenario haben, wo es einfacher ist, Zeiger in unsicheren Code anstelle von IntPtr-Instanzen zu verwenden. Der zweitbeliebteste (und entfernteste) Grund besteht darin, dass Sie bei der Verarbeitung großer Datenmengen in unsicheren Code möglicherweise einen Leistungszuwachs erzielen als bei verwaltetem Code. Bildverarbeitungsalgorithmen sind ein gutes Beispiel dafür.

+0

Würden Sie sagen, dass eine Web-App wie http://aviary.com/home ein Beispiel für Zeiger wäre verwendet werden? – madcolor

+0

@ madcolor: Das ist unmöglich zu sagen. Im Allgemeinen kann jeder Webserver oder jedes Framework HTML bereitstellen, Sie wissen nicht einmal sicher, dass es ASP.NET ist, das die Arbeit erledigt, obwohl es eine sehr sichere Wette ist, wenn die Viewstate-Felder auf der Seite verwendet werden. – casperOne

+0

@madcolor: Das sagte, würde ich sagen, dass es nicht mit Zeigern getan wird. Im Allgemeinen ist es besser, .NET und ASP.NET die Speicherverwaltung für Sie übernehmen zu lassen, da dies in der Regel besser ist. – casperOne

1

Wenn Sie eine performante Bildverarbeitung für eine Webanwendung durchführen möchten, sollten Sie die Verwendung von Zeigern in Betracht ziehen. Siehe Image Processing Basics in C# auf codeproject.com.

+0

+1 - Da sein Name "Madcolor" ist, vermute ich, dass dies genau das ist, wofür er es braucht! –

1

Sie müssen nur Zeiger verwenden, wenn Sie nicht verwalteten Code verwenden oder pinvoke-Aufrufe durchführen.

+0

Genau genommen ist es möglich, mit dem meisten nicht verwalteten Code zu arbeiten, ohne "unsichere" C# zu verwenden (mit 'IntPtr'). –