Я честно ждал два дня в надежде, что кто-нибудь запостит за меня. Облом
В общем, товарищи из MS таки раскрыли давно известную в узких кругах
элитных программистовАвтор: SaprXM
Дата: 22.03.15
фишку.
Все подробности можно прочесть в
соответствующем разделе, для затравки:
partial class WithMagic
{
class SomeType
{
}
interface ISample
{
void DoSomething(T.h.e._.S.a.m.p.l.e._.C.o.m.m.e.n.t.ISample sample);
}
static int SomeField;
void Do(C.o.m.m.e.n.t._.H.e.r.e.SomeType some)
{
A.n.o.t.h.e.r._.o.n.e.SomeField = 123;
some = new A.n.d._.m.o.r.e._.D.e.t.a.i.l.SomeType();
}
}
для самых нетерпеливых (ну, или если вашу
заявку на вступление по какой-то причине не одобрили)
| небольшая подсказка |
| partial class WithMagic
{
class A : WithMagic { } class B : WithMagic { } class C : WithMagic { } class D : WithMagic { } class E : WithMagic { } class F : WithMagic { } class G : WithMagic { }
class H : WithMagic { } class I : WithMagic { } class J : WithMagic { } class K : WithMagic { } class L : WithMagic { } class M : WithMagic { } class N : WithMagic { }
class O : WithMagic { } class P : WithMagic { } class Q : WithMagic { } class R : WithMagic { } class S : WithMagic { } class T : WithMagic { } class U : WithMagic { }
class V : WithMagic { } class W : WithMagic { } class X : WithMagic { } class Y : WithMagic { } class Z : WithMagic { }
class a : WithMagic { } class b : WithMagic { } class c : WithMagic { } class d : WithMagic { } class e : WithMagic { } class f : WithMagic { } class g : WithMagic { }
class h : WithMagic { } class i : WithMagic { } class j : WithMagic { } class k : WithMagic { } class l : WithMagic { } class m : WithMagic { } class n : WithMagic { }
class o : WithMagic { } class p : WithMagic { } class q : WithMagic { } class r : WithMagic { } class s : WithMagic { } class t : WithMagic { } class u : WithMagic { }
class v : WithMagic { } class w : WithMagic { } class x : WithMagic { } class y : WithMagic { } class z : WithMagic { } class _ : WithMagic { }
}
|
| |
А, да, по поводу заявки. Если кому не пришли вступительные вопросы (напоминаю, адрес для обращений — dont.disturb.us@rsdn.ru) — первый из вопросов,
| разминочный |
|
public class A<T1>
{
public T1 a;
public Type a1 = typeof(A<T1>);
public class B<T2> : A<T2>
{
public T1 b;
public Type b1 = typeof(B<T1>);
public class C<T3> : B<T3>
{
public T1 c;
public Type c1 = typeof(C<T1>);
public class D<T4> : C<T4>
{
public T1 d;
public Type d1 = typeof(D<T1>);
public class E<T5> : D<T5>
{
public T1 e;
public Type e1 = typeof(E<T1>);
}
}
}
}
}
static void Main()
{
Console.WindowWidth = 120;
A<bool>.B<byte>.C<int>.D<char>.E<long> o = new A<bool>.B<byte>.C<int>.D<char>.E<long>();
Console.WriteLine(o.a.GetType().FullName);
Console.WriteLine(o.b.GetType().FullName);
Console.WriteLine(o.c.GetType().FullName);
Console.WriteLine(o.d.GetType().FullName);
Console.WriteLine(o.e.GetType().FullName);
Console.WriteLine();
Console.WriteLine(o.a1);
Console.WriteLine(o.b1);
Console.WriteLine(o.c1);
Console.WriteLine(o.d1);
Console.WriteLine(o.e1);
Console.ReadKey();
}
|
| |
Здравствуйте, Sinix, Вы писали:
S>Все подробности можно прочесть в соответствующем разделе, для затравки:
S>S> void DoSomething(T.h.e._.S.a.m.p.l.e._.C.o.m.m.e.n.t.ISample sample);
S>
Ну!... Юникод не поддерживается. Проверка орфографии тоже.
Здравствуйте, VladD2, Вы писали:
VD>Ну!... Юникод не поддерживается. Проверка орфографии тоже.
Зато автокомплит есть
И подсветка, как минимум в решарпере. В 2015 студию вроде бы тоже добавили.
А йуникод — это вопрос
упорства поиска
по stackoverflow.
Здравствуйте, Sinix, Вы писали:
S>В общем, товарищи из MS таки раскрыли давно известную в узких кругах элитных программистовАвтор: SaprXM
Дата: 22.03.15
фишку.
Не иначе как в MS освоили русский язык. Дотнет, дотнет, нет дота и все. Теперь в дотнете дот все же есть.
Здравствуйте, Sinix, Вы писали:
T1 -> bool
T2 -> byte
T3 -> int
T4 -> char
T5 -> long
.class nested public auto ansi beforefieldinit E`1<T1, T2, T3, T4, T5>
extends class ConsoleApplication1.A`1/B`1/C`1/D`1<!T2, !T3, !T4, !T5>
public class E<T1,T2,T3,T4,T5> : A<T2>.B<T3>.C<T4>.D<T5> -> E<bool, byte, int, char, long> : A<byte>.B<int>.C<char>.D<long>
public class D<T1,T2,T3,T4> : A<T2>.B<T3>.C<T4> -> D<byte, int, char, long> : A<int>.B<char>.C<long>
public class C<T1,T2,T3> : A<T2>.B<T3> -> C<int, char, long> : A<char>.B<long>
public class B<T1,T2> : A<T2> -> B<char, long> : A<long>
public class A<T1> -> A<long>