using
System;
using
System.Collections.Generic;
public
abstract
class
BaseClass
{ }
public
class
ClassA
:
BaseClass
{ }
public
class
ClassB
:
ClassA
{ }
public
class
GenericClass
:
ClassB
{ }
public
class
NonInheritingClass
where
T :
BaseClass
{
private
List
<
GenericClass
> m_list;
public
virtual
int
AddToList(
GenericClass
baseObject)
{
if
(
this
.m_list ==
null
)
{
this
.m_list =
new
List
<
GenericClass
>();
}
this
.m_list.Add(baseObject);
return
m_list.Count;
}
}
public
class
SomeClass
{
public
static
int
TestMethod()
{
int
count;
NonInheritingClass
<
ClassB
> nonInheritingClass =
new
NonInheritingClass
<
ClassB
>();
GenericClass
<
ClassB
> classB =
new
GenericClass
<
ClassB
>();
count = nonInheritingClass.AddToList(classB);
return
count;
}
}