using System.Runtime.InteropServices; partial class C { public static void Foo (C c, [Optional] C c2) { } } partial class C { public static void Foo2 ([Optional] C c2) { } public static void Main () { } }