Си диез / Говнокод #9355 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
using System;

public class Man
{
    static int num;
    public Man parent = new Man();    //У каждого человека есть родители, ведь так?

    static Man()
    {
        num = 0;
    }

    public Man()
    {
        num++;
    }
}

Компилятор C# против перенаселения, вовремя выдаёт StackOverflowException, пока расплодиться не успели..

Запостил: vistefan vistefan, (Updated )

Комментарии (29) RSS

  • Зато если наладить объявление родителей только при первой попытке обращения к ним, то можно пользоваться конструкциями вроде
    me.parent.parent.parent.parent.parent....
    Ответить
    • Вот он, вот он код моей мечты, ребята, здоровенный!
      using System;
      
      public class Man
      {
          static int num;
          public int myNum;
          private Man parent;
      
          static Man()
          {
              num = 0;
          }
      
          public Man()
          {
              num++;
              myNum = num;
          }
      
          public Man Parent
          {
              get
              {
                  parent = new Man();
                  return parent;
              }
          }
      }


      Только я не отвечаю, если кто-то захочет вызывать родителей больше одного раза...
      Ответить
      • Говно какое-то. Речь даже не в мелочах типа:
        > myNum = ++num;
        И не в быдловском названии переменной:
        >myNum

        Дело в том, что дитя порождает родителя.
        Ответить
        • > Дело в том, что дитя порождает родителя.
          Значит надо сделать так:
          parent = old Man();
          Ответить
        • Преинкремент - по существу, а остальное - несущественно:
          Названия переменных вообще в жопу, это ж говнокод.ру
          А родители и дети в данном случае - это только тривиальные названия, мы же не имеем дела с наследованием и прочим. К тому же пример абстрактен.

          А вообще:
          >Говно какое-то.
          Я ошибаюсь, или на этом сайте это звучит как похвала? 🙂
          Ответить
          • >Вот он, вот он код моей мечты, ребята
            ...
            >Названия переменных вообще в жопу, это ж говнокод.ру
            Давай всё подряд совать в жопу. Это ж Говнокод.ру
            Ответить
        • Дык копипастил же

          В данном контексте действительно тупость
          Ответить
            • вроде бы выполняется при создании первого экземпляра класса.
              то бишь, инициализатор класса.
              Ответить
              • >вроде бы выполняется при создании первого экземпляра класса
                Это далеко не единственная особенность статических конструкторов, так что подобное утверждение почти никак не определяет описываемое понятие.

                >инициализатор класса
                В корне неправильное представление о статических конструкторах
                Ответить
            • хм... я конечно извиняюсь, но не с Java ли в C# перекочевали статические конструкторы? Мне всегда казалось, что там есть что-то подобное... Хотя вроде гугл говорит что я дурак.

              Статические конструкторы - это конструкторы, имеющие право работать только со статическиеми членами класса. Исполюзуются, например, для установки начальных значений статических переменных, но, в отличие от обыкновенных конструкторов для каждого конкретного класса выполняется только один раз, а именно в момент первого создания экземпляра класса или первого обращения к статическому члену класса (для случаев, например, со static-классами), причем перед выполнением какого-либо другого конструктора, в том числе конструктора по умолчанию. Не может быть перегружен.
              Ответить
              • А, теперь понятно. Да, у нас это называется статическими блоками, используется часто и выглядит непохоже. Хех, у нас и динамические блоки могут быть вне конструктора.
                Спасибо, буду знать.
                Ответить
            • В жабе тоже есть своего рода статические конструкторы:

              static{
              ...
              }

              >выполняется при создании первого экземпляра класса.
              В жабе при загрузке JVMом класса в память.

              http://msdn.microsoft.com/en-en/library/k9x6w0hc(v=vs.90).aspx
              >A static constructor is used to initialize any static data, or to perform a particular action that needs to be performed once only. It is called automatically before the first instance is created or any static members are referenced.

              Суть та же.
              Ответить
      • public Man Parent
            {
                get
                {
                    if (parent == nil)
                        parent = new Man();
                    return parent;
                }
            }


        Тогда уж...
        Ответить
  • э$X!P,G?O?J J!B$G(K.W,M(D:I:K:O.Y.D.X$E.L C K(E,Z,M:Y:B"C$V$R!N"WJ!K:O?B)G:U(D A)V"O:Q L!C!ZD.I"O,I!J(K?H,Q C:V"F)O:GU,H,F X U.R!K.RA,C$O:I Z(R"P F K(O I)Y.Z.A!Q E)N$H I.U(O.Y:H E"P?M L,J?C!R!E,R T.L MX(T.H:CZ:Q.HJ.V!A.Y!CJ.B?S:O.E)YB:E!J,U(Q!H!P"KY:A,N"H!R H?D.VV$HS CJ,V$M)F.M"P)I?O"G.Q W:KR Y:U V?W!SD.Q,R"GQ?R"N"G F:Q:U$M?F,C$Y"B"Y)E$T!D.F$I?N?B(T"U.H)T:R)D:NS!R!D(B!G.V:SA(E V(O Q!L)SC(YI,Y:J,Q.N(Z!T J:R U(YN,H)E.T!V.H.Q(U(Q.I)X!W(Z,Y R$U?J,C"Q N,D(E N:N.T(I$T(L"R(S PP(N.J:UD:G E?JR.F!E:M:R"O:X?C?P.LX"B!L!A!S?D(I,O(M?F.CP,X(L!G.SF)W?F!D!K T"W!J,F(M,C)I?R,X?X!I)P)K:P S$L,W.C!I L"R:C:S!F.O N:F T)A$M$X,G"Z.J.KG!H V)R$S)F!H B)S"R!I(V H:A)W(U:Z$H(P!G OK)G"V?SY$I$P.G?N$T:D(M!L.M!U:U.W,IJ Q"T O,B?L"K!T)E:Y(L$C,M(I I"V!O"W!U$M$G,I)IG(O:T,M.M:O!F$W:B!Q:W,O,P(M.F?K,I,G!H$Q"A$F(J(M!T(O$A,A$I$J"I:L?L:Y$O!W"N:Y!G,N)N"W(D F(C$Z)O.P,K)PH:J)M.T?P.C!V,O(PD,R)E"W)K.V!X)X S G.D(Y$U)V)X?T?KM$Z"Q F(V"X U!L(J.I)FV.D$C)R O,I,B N)M(TR O"B(C"Z.K P$T?A!W.G?Z$Q"R!Z!J(Q)T,R?L)I$E,R"A)D O,Q?N Z$P K?P)O$H)E(U D!J"M!Y"Q.G!Q(G(Q A?Q(L:I)L!Y:O$KUW F(I:T)NJQ)J.H,J P?U,L"S$R(F!V?N R?T.F:U"CGN(Q$R?GF:F,Y:Z?Z(UI,X NA.B D$E"P"T,H!S"R:W,A:R"DH$D(QG)ML$F:G(Q.X!S.D O?NN:I N?HS(Y!G$A.TСGFVEAIABCKQBKJEPWLWCLZURHCYBEXO
    Ответить
  • - Лёка, я люблю тебя... я так соскучился, я ... Лёка, ну щас кто-нибудь увидит, дурачок, боже...
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8