CSharp · Console
using System;
using System.IO;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
var c = new MyContainer<MyEnum>();
c.MyProp = new SomeClass<MyEnum, MyImplementation>();
}
public enum MyEnum
{
val1,
val2
}
;
public interface ISomeClass<TEnum, out S>
{
TEnum Dim
{
get;
}
IEnumerable<S> Inc
{
get;
}
}
public interface IMyInterface
{
}
public class SomeClass<TEnum, S> : ISomeClass<TEnum, S> where TEnum : struct, IConvertible where S : IMyInterface
{
public TEnum Dim
{
get;
set;
}
public IEnumerable<S> Inc
{
get;
set;
}
}
public class MyImplementation : IMyInterface
{
}
public class MyContainer<TEnum>
where TEnum : struct, IConvertible
{
public SomeClass<TEnum, IMyInterface> MyProp
{
get;
set;
}
}
}