具有约束的 C# 继承泛型 类
C# inheritance generic classes with constraints
所以,我有一个接口:
interface A<SomeType>
{
SomeType Abc(SomeType);
.....
}
我有一个 class:
class B<ShouldBeClassA<AnyType>>
where ShouldBeClassA<AnyType> : A<AnyType>
{ ShouldBeClassA<AnyType> someVariable; .....}
但这会导致语法错误,我想要的是强制 someVariable 成为
的导数
A<AnyType>
所以我可以做到:
class B......
{
....
void Method()
{
someVariable.Abc(anyTypeVariable);
}
......}
你能告诉我,如何解决这个问题吗?
这是实际代码:
public interface IGenericTeacher<Genome<GenomeType>>
where Genome<GenomeType> : IGenome<GenomeType>
{
/// <summary>
/// Pass the tests and save the results.
/// </summary>
void PassTests();
/// <summary>
/// Passing generation, according to the results.
/// </summary>
void PassGeneration();
}
public interface IGenome<GenomeType>
{
.......
您的界面应该是:
public interface IGenericTeacher<T> where T : IGenome<T>
{
//...
}
所以,我有一个接口:
interface A<SomeType>
{
SomeType Abc(SomeType);
.....
}
我有一个 class:
class B<ShouldBeClassA<AnyType>>
where ShouldBeClassA<AnyType> : A<AnyType>
{ ShouldBeClassA<AnyType> someVariable; .....}
但这会导致语法错误,我想要的是强制 someVariable 成为
的导数A<AnyType>
所以我可以做到:
class B......
{
....
void Method()
{
someVariable.Abc(anyTypeVariable);
}
......}
你能告诉我,如何解决这个问题吗?
这是实际代码:
public interface IGenericTeacher<Genome<GenomeType>>
where Genome<GenomeType> : IGenome<GenomeType>
{
/// <summary>
/// Pass the tests and save the results.
/// </summary>
void PassTests();
/// <summary>
/// Passing generation, according to the results.
/// </summary>
void PassGeneration();
}
public interface IGenome<GenomeType>
{
.......
您的界面应该是:
public interface IGenericTeacher<T> where T : IGenome<T>
{
//...
}