namespace net.lshift.ndocproc.examples.genericdelegates
{
using System;
///Foo delegate
internal delegate void Foo(TimeSpan timeout);
///Generic foo delegate
internal delegate TResult Foo(TimeSpan timeout);
///Variant one
internal delegate TResult Foo1(TimeSpan timeout, TArg arg0);
///Variant two
internal delegate TResult Foo2(TimeSpan timeout, out TArg arg0);
///Variant three
internal delegate TResult Foo3(TimeSpan timeout, ref TArg arg0);
///Variant four
internal delegate TResult Foo4(TimeSpan timeout, TArg[] arg0);
///Variant five
internal delegate TResult Foo5(TimeSpan timeout, out TArg[] arg0);
///Variant six
internal delegate TResult Foo6(TimeSpan timeout, ref TArg[] arg0);
///Bar delegate
internal delegate void Bar(object message, TimeSpan timeout);
}