может я:C# шаблон специализации
class X<T>
where T : EventArgs
{
}
class X<T>
where T:Exception
{
}
в C#?
может я:C# шаблон специализации
class X<T>
where T : EventArgs
{
}
class X<T>
where T:Exception
{
}
в C#?
Вы не можете использовать одно и то же имя класса для общих ограничений.
Вы можете использовать базовые классы в качестве ограничений, но это ограничение означает, что вы можете использовать только производные классы - в ваших примерах, только классы, которые производятся от EventArgs
в первом примере и классах, которые производятся от Excpetion
во втором.
См. documentation для ограничений на параметры типа.
именно то, что я хочу, один класс для T, который происходит от одного класса и аноним для тех, которые происходят от другого –
Нет, поскольку две кланы имеют одно и то же имя.
Что вы пытаетесь сделать?
Если вы имеете в виду 2 класса с таким же именем в том же пространстве имен с различными параметрами общего типа - тогда NO, вы не можете!
У вас может быть только один класс в , где. Вы можете использовать
System.Runtime.InteropServices._Exception интерфейс
принимать исключения (это было бы некрасиво хак, хотя).
Если вы поместите их в отдельные пространства имен, вы можете.
Не совсем понятно, чего вы на самом деле хотите достичь. – Noldorin
-1 - Если вы не читали документацию, C# не имеет ШАБЛОНОВ, у него есть GENERICS. Существует четкое различие - что делает специализацию невозможной. – TomTom
Хорошо, он, вероятно, хочет сделать шаблоны, как на C++. Рад, что он не поддерживается, тем не менее, вызывает боль. – Noldorin