using System;
public delegate void FormattingLoggerDelegate(string format, params object[] args);
public class Test
{
public static void Main()
{
AnotherFunction(Log);
}
public
static void AnotherFunction
(FormattingLoggerDelegate
log) {
log("test {0}, {1}", 1, 2); }
public static void Log(string format, params object[] args)
{
Console.WriteLine(string.Format(format, args));
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGRlbGVnYXRlIHZvaWQgRm9ybWF0dGluZ0xvZ2dlckRlbGVnYXRlKHN0cmluZyBmb3JtYXQsIHBhcmFtcyBvYmplY3RbXSBhcmdzKTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsKICAgIAlBbm90aGVyRnVuY3Rpb24oTG9nKTsKICAgIH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIEFub3RoZXJGdW5jdGlvbihGb3JtYXR0aW5nTG9nZ2VyRGVsZWdhdGUgbG9nKQogICAgewogICAgICAgIGxvZygidGVzdCB7MH0sIHsxfSIsIDEsIDIpOwogICAgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgTG9nKHN0cmluZyBmb3JtYXQsIHBhcmFtcyBvYmplY3RbXSBhcmdzKQogICAgewogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Gb3JtYXQoZm9ybWF0LCBhcmdzKSk7CiAgICB9Cn0=