Inconsistent accessibility: parameter type 'type' is less accessible than delegate 'delegate'
A public construct must return a publicly accessible object.
The following sample generates CS0058:
class MyClass { // try the following line instead // public class MyClass { } public delegate MyClass MyClassDel(); // CS0058 public class a { public static void Main() { } }