public static void Main(string [] args, string principalClassName, string delegateClassName) { var p = NSString.CreateNative(principalClassName); var d = NSString.CreateNative(delegateClassName); try { Main(args, p, d); } finally { // it just looks nicer to release them NSString.ReleaseNative(d); NSString.ReleaseNative(p); } }