using System.Runtime.InteropServices;
public static void Main()
Type[] types = { typeof(StaticClass), typeof(StaticClass), typeof(AbstractClass), typeof(InternalClass), typeof(InheritedClass), typeof(InheritedClassAndInterface), typeof(GenericClassWithWhereClause<>), typeof(IGenericInterfaceWithOutParameter<>) };
foreach (Type type in types)
Console.WriteLine(type.GetSignature());
public static class StaticClass
public abstract class AbstractClass
internal class InternalClass
public interface IPublicInterface
public class InheritedClass : PublicClass
public class InheritedClassAndInterface : PublicClass, IPublicInterface
public class GenericClass<T1, T2>
public class GenericClassWithWhereClause<T> where T : class, new()
public interface IGenericInterfaceWithInParameter<in T>
public interface IGenericInterfaceWithOutParameter<out T>