Lassen Sie uns sagen, ich habe die folgende Signatur:Ist der Standardwert (IntPtr) in einer externen Funktion zulässig?
static extern void External(int foo, IntPtr bar);
Ich möchte es Vorgaben machen verwenden:
static extern void External(int foo = 10, IntPtr bar = default(IntPtr));
Ist das gültig? In C++ würde ich den Zeiger verwenden, um 0 oder Null zu sein. In C# ist nicht einmal klar, ob IntPtr ein Wert oder eine Referenz ist. Wenn ich meine Funktion manuell aufgerufen habe, würde ich External(10, IntPtr.Zero);
verwenden. Ich denke, meine Frage ist: Wird default(IntPtr)
das gleiche Verhalten wie IntPtr.Zero
haben?
Referenz initialisiert werden? Ich habe versucht, Google/MSDN es:/ – Lazlo
@Lazlo, Link hinzugefügt. –