Die Verwendung von IntPtr in verwaltetem Code kann auf ein potenzielles Sicherheitsrisiko und Zuverlässigkeitsproblem hinweisen. Für alle Vorkommen von IntPtr muss überprüft werden, ob stattdessen die Verwendung von SafeHandle (oder einer ähnlichen Technologie) erforderlich ist. Probleme treten auf, wenn IntPtr eine systemeigene Ressource darstellt (Speicher, Dateihandle, Socket usw.), von der angenommen wird, dass sie sich im Besitz des verwalteten Codes befindet. Beispielsweise wird erwartet, dass verwalteter Code die Ressource auf bestimmte Weise freigibt. Wenn dies nicht der Fall ist, kann ein Ressourcenverlust eintreten. In solchen Szenarios treten Sicherheitsrisiken oder Zuverlässigkeitsprobleme auch auf, wenn Multithreaded-Zugriff auf IntPtr zulässig ist und IntPtr eine Möglichkeit zum Freigeben der Ressource darstellt. Zu diesen Problemen gehört das Recycling des IntPtr-Werts bei der Ressourcenfreigabe während der gleichzeitigen Verwendung der Ressource für einen anderen Thread. Dies führt zu Racebedingungen, unter denen ein Thread Daten lesen oder schreiben kann, die der falschen Ressource zugeordnet sind. Wenn der Typ beispielsweise ein Betriebssystemhandle als IntPtr speichert und zulässt, dass Benutzer die Close-Methode und eine beliebige andere Methode aufrufen, die dieses Handle (ohne jegliche Synchronisierung) gleichzeitig verwendet, liegt im Code ein Problem beim Recyceln von Handles vor, was zu Datenbeschädigungen und häufig zu einem Sicherheitsrisiko führt. SafeHandle (und die gleichgeordnete Klasse CriticalHandle) bieten einen Mechanismus zum Kapseln eines systemeigenen Handles in einer Ressource, sodass solche Threadingprobleme vermieden werden können (ebenso wie andere Probleme, beispielsweise die Notwendigkeit der sorgfältigen Kontrolle der Lebensdauer von verwalteten Objekten, die eine Kopie des systemeigenen Handles über Aufrufe an systemeigene Methoden enthalten, d. h., Sie können Aufrufe von GC.KeepAlive in vielen Fällen entfernen). Beim Verwenden von SafeHandle (und in geringerem Maße beim Verwenden von CriticalHandle) treten implizite Leistungsverluste auf, die oft durch einen sorgfältigen Entwurf gemindert werden können.
Die Verwendung von "is" zum Testen der Kompatibilität mit "dynamic" entspricht grundsätzlich dem Testen der Kompatibilität ...
Die Verwendung von benannten Argumenten in union case-Ausdrücken ist für künftige Verwendung reserviert. Argumente der Form ...
Die Verwendung von Deny oder PermitOnly sollte sorgfältig überprüft werden. Die Verwendung von Deny oder PermitOnly sollte ...
Die Verwendung von imperativen Anforderungen kann zu unvorhergesehenen Sicherheitsproblemen führen. Die zum Erstellen einer ...
Die Verwendung von IntPtr in verwaltetem Code kann auf ein potenzielles Sicherheitsrisiko und Zuverlässigkeitsproblem hinweisen. ...
Die Verwendung von out-Parametern kann auf einen Fehler beim Entwurf hinweisen. Obwohl es auch Fälle gibt, in denen out-Parameter ...
Die Verzierung konnte von Visual Web Developer nicht angewendet werden. Stellen Sie sicher, dass die Zellformatierungstabelle ...
Die virtuelle Umgebung ist für das Ausführen von Tests nicht bereit. Umgebung: {0}. Hostgruppe: {1}. Stellen Sie mithilfe ...
Die Visual Studio-Sprachunterstützung für %1 wurde nicht installiert. IntelliSense für die Codebearbeitung ist nicht verfügbar, ...