2014-04-25 11 views
6

Ich habe gelesen auf partial methods, da sie in C# -6/Visual Studio 2013 Update 2 in Kombination mit Windows Universal Projects viel wichtiger werden. Beim Lesen der Dokumentation habe ich diese merkwürdige Einschränkung der Signatur von Teilmethoden gelesen:Warum partielle Methoden ref unterstützen, aber nicht out Parameter

Teilmethoden können ref aber nicht out Parameter haben.

Ich verstehe nicht den Grund für diese Einschränkung. Da partielle Methoden im Grunde eine normale Methode mit der Signatur und Implementierung in verschiedenen Dateien sind, welchen technischen Grund gäbe es, Parameter nicht zu unterstützen? Oder irgendein anderer Grund für diese Einschränkung in dieser Angelegenheit. Zumal sie Ref-Parameter unterstützen, die very similar sind.

Antwort

8

Wenn eine partielle Methode deklariert, aber nicht implementiert ist, wird sie nicht aufgerufen.

Dies würde bedeuten, dass kein out Parameter zugewiesen wird, was nicht erlaubt ist.

Dies ist kein Problem mit ref Parametern, da sie zugewiesen werden müssen, bevor sie an die Methode übergeben werden, so dass sie definitiv zugewiesen werden, selbst wenn die Methode nicht aufgerufen wird.

+0

Ich wusste nicht, dass alle Aufrufe von Teilmethoden einfach entfernt werden. Das ist eigentlich ziemlich beängstigend. Danke für die Information! –

0

Das macht Sinn, wenn Sie Details zu buchen, gesorgt werden bei der Umsetzung von Teil Methoden:

Teil Methoden Implementierung ist optional.

Eine out-Variable wird niemals einem Wert zugewiesen, während einer ref-Variablen immer ein Wert zugewiesen wird. Wenn die partielle Methode nicht implementiert ist, hätten wir eine Variable, die nicht zugewiesen ist. Für eine Ref-Variable würde kein Problem auftreten, da ihr ein bestimmter Wert zugewiesen ist.

Aus diesem Grund werden out-Variablen nicht unterstützt, da eine out-Variable bedeutet, dass der Wert zurückgegeben wird.

Verwandte Themen