separate string

CSharp · Console

/Program.cs

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;
		}
	}
}
;