Отражение - сколько классов можно унаследовать - C#
Формулировка задачи:
Как проверить с помощью отражения, сколько классов можно унаследовать?
Решение задачи: «Отражение - сколько классов можно унаследовать»
textual
Листинг программы
<#@ import namespace="System.Text" #>
namespace NyNamespace
{
<#
StringBuilder sbClass = new StringBuilder();
StringBuilder sbInheritance = new StringBuilder();
StringBuilder sbInterfaces = new StringBuilder();
for (int i=0; i<1000; i++)
{
string name = "IFoo" + (i+1);
sbInterfaces.Append("\tinterface ").Append(name).Append(" { void Foo(); }").Append("\r\n");
sbClass.Append("\t\tvoid ").Append(name).Append(".Foo() { }").Append("\r\n");
sbInheritance.Append(name+", ");
}
sbClass.Length -= 2;
sbInheritance.Length -= 2;
string inheritance = sbInheritance.ToString();
for(int idx=3000; idx < inheritance.Length; idx+=3000)
{
idx = inheritance.IndexOf(',', idx);
if (idx == -1) break;
inheritance = inheritance.Insert(idx, "\r\n\t\t");
}
#>
class Foo
: <#=inheritance#>
{
<#=sbClass.ToString()#>
}
<#=sbInterfaces.ToString()#>
}