<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0310</ErrorName>
  <Examples>
    <string>// CS0310: The type `Class1' must have a public parameterless constructor in order to use it as parameter `T' in the generic type or method `Class3&lt;T&gt;'
// Line: 18

public class Class1
{
	public Class1 (int i) { }
}

public class Class2&lt;T&gt;
{
}

public class Class3&lt;T&gt; where T : new ()
{
}


class A : Class2&lt;Class3&lt;Class1&gt;&gt;
{
}

</string>
    <string>// CS0310: The type `Foo' must have a public parameterless constructor in order to use it as parameter `a' in the generic type or method `C&lt;a&gt;'
// Line: 14
class C &lt;a&gt; where a : new () {
}

class Foo {
  public Foo (int x) { }
}

class X
{
        static void Main ()
        {
          C&lt;Foo&gt; x;
        }
}
 

</string>
    <string>// CS0310: The type `A' must have a public parameterless constructor in order to use it as parameter `T' in the generic type or method `Foo&lt;T&gt;'
// Line: 20

public class Foo&lt;T&gt;
	where T : new ()
{
}

class A
{
	private A ()
	{ }
}

class X
{
	static void Main ()
	{
		object o = new Foo&lt;A&gt; ();
	}
}
</string>
    <string>// CS0310: The type `string' must have a public parameterless constructor in order to use it as parameter `T' in the generic type or method `Program.Ret&lt;T&gt;()'
// Line: 10

public static class Program
{
	static void Main ()
	{
		Ret&lt;string&gt; ();
	}

	static T Ret&lt;T&gt; () where T : new ()
	{
		return new T ();
	}
} 
</string>
    <string>// CS0310: The type `A' must have a public parameterless constructor in order to use it as parameter `T' in the generic type or method `Foo&lt;T&gt;'
// Line: 18

public class Foo&lt;T&gt;
	where T : new ()
{
}

class A
{
	private A ()
	{ }
}

class X
{
	Foo&lt;A&gt; foo;

	static void Main ()
	{
	}
}
</string>
    <string>// CS0310: The type `A' must have a public parameterless constructor in order to use it as parameter `T' in the generic type or method `Foo&lt;T&gt;'
// Line: 18

public class Foo&lt;T&gt;
	where T : new ()
{
}

abstract class A
{
	public A ()
	{ }
}

class X
{
	Foo&lt;A&gt; foo;

	static void Main ()
	{
	}
}
</string>
  </Examples>
</ErrorDocumentation>