Тема: Допоможіть розібрати код.

доброго дня!!! Допоможіть будь ласка,дозвольте розібрати цей код.

Я взагалі дуже слабкий в кодах.

Отже Pervyj - це простір імен. Що using namespace System?

Звідки береться це System? Що це мається на увазі - клас чи не клас або що

і як його використовувати??

Далі потім.

#pragma once 

#using <mscorlib.dll>

namespace Pervyj
{
  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Drawing;
  using namespace System::Runtime::ExceptionServices;
  using namespace System::Runtime::InteropServices;
  using namespace System::Windows::Forms;

  using namespace System;
  public __gc class Form1;

  public __gc class Form1 : public System::Windows::Forms::Form
  {
    private: System::Windows::Forms::TextBox * textBox1;
    private: System::Windows::Forms::TextBox * textBox2;
    private: System::Windows::Forms::Label * label1;
    private: System::Windows::Forms::Label * label2;
    private: System::Windows::Forms::Label * label3;
    private: System::Windows::Forms::Button * button1;
    private: System.ComponentModel.Container * components;
    public: Form1();
    private: System.Void InitializeComponent();
    private: System.Void ~Form1();
    private: System.Void button1_Click(System.Object * sender, System.EventArgs * e);
    protected: [HandleProcessCorruptedStateExceptionsAttribute]
    virtual System.Void Dispose([MarshalAsAttribute(System::Runtime::InteropServices::UnmanagedType::U1)] System.Boolean A_0);
  };

  inline Form1::Form1() : System.Windows.Forms.Form()
  {
    try
    {
      this->InitializeComponent();
    }
    __finally
    {
      __super::Dispose(true);
    }
  }
  inline System.Void Form1::InitializeComponent()
  {
    this->textBox1 = new System::Windows::Forms::TextBox();
    this->textBox2 = new System::Windows::Forms::TextBox();
    this->label1 = new System::Windows::Forms::Label();
    this->label2 = new System::Windows::Forms::Label();
    this->label3 = new System::Windows::Forms::Label();
    this->button1 = new System::Windows::Forms::Button();
    __super::SuspendLayout();
    this->textBox1->set_Location(new System::Drawing::Point(119, 12));
    this->textBox1->set_Name(S"textBox1");
    this->textBox1->set_Size(new System::Drawing::Size(161, 20));
    this->textBox1->set_TabIndex(0);
    this->textBox2->set_Location(new System::Drawing::Point(119, 70));
    this->textBox2->set_Name(S"textBox2");
    this->textBox2->set_Size(new System::Drawing::Size(161, 20));
    this->textBox2->set_TabIndex(1);
    this->label1->set_AutoSize(true);
    this->label1->set_ForeColor(System::Drawing::SystemColors::get_Desktop());
    this->label1->set_Location(new System::Drawing::Point(12, 9));
    this->label1->set_Name(S"label1");
    this->label1->set_Size(new System::Drawing::Size(35, 13));
    this->label1->set_TabIndex(2);
    this->label1->set_Text(S"label1");
    this->label2->set_AutoSize(true);
    this->label2->set_ForeColor(System::Drawing::SystemColors::get_Desktop());
    this->label2->set_Location(new System::Drawing::Point(12, 73));
    this->label2->set_Name(S"label2");
    this->label2->set_Size(new System::Drawing::Size(35, 13));
    this->label2->set_TabIndex(3);
    this->label2->set_Text(S"label2");
    this->label3->set_AutoSize(true);
    this->label3->set_ForeColor(System::Drawing::SystemColors::get_Desktop());
    this->label3->set_Location(new System::Drawing::Point(60, 229));
    this->label3->set_Name(S"label3");
    this->label3->set_Size(new System::Drawing::Size(35, 13));
    this->label3->set_TabIndex(4);
    this->label3->set_Text(S"label3");
    this->button1->set_Location(new System::Drawing::Point(47, 132));
    this->button1->set_Name(S"button1");
    this->button1->set_Size(new System::Drawing::Size(83, 23));
    this->button1->set_TabIndex(5);
    this->button1->set_Text(S"Расчет");
    this->button1->set_UseVisualStyleBackColor(true);
    add_Click(new System.EventHandler(this->button1, this->button1_Click));
    __super::set_AutoScaleDimensions(new System::Drawing::SizeF(6, 13));
    __super::set_AutoScaleMode(1);
    __super::set_ClientSize(new System::Drawing::Size(292, 273));
    __super::get_Controls()->Add(this->button1);
    __super::get_Controls()->Add(this->label3);
    __super::get_Controls()->Add(this->label2);
    __super::get_Controls()->Add(this->label1);
    __super::get_Controls()->Add(this->textBox2);
    __super::get_Controls()->Add(this->textBox1);
    __super::set_Name(S"Form1");
    __super::set_Text(S"Form1");
    __super::ResumeLayout(false);
    __super::PerformLayout();
  }
  inline System.Void Form1::~Form1()
  {
    // Evaluation version.
  }
  inline System.Void Form1::button1_Click(System.Object * sender, System.EventArgs * e)
  {
    // Evaluation version.
  }
  inline System.Void Form1::Dispose([MarshalAsAttribute(System::Runtime::InteropServices::UnmanagedType::U1)] System.Boolean A_0)
  {
    if ((A_0 != false))
    {
      try
      {
        this->~Form1();
      }
      __finally
      {
        __super::Dispose(true);
      }
    }
    else
    {
      __super::Dispose(false);
    }
  }
}

2

Re: Допоможіть розібрати код.

Дмитро-Чебурашка написав:

Що using namespace System?

Це означає, що для об'єктів з простору імен System не треба буде дописувати System::. Тобто замість

private: System::Windows::Forms::TextBox * textBox1;

можна було написати

private: TextBox * textBox1;

А взагалі - страшний гівнокод. Якщо вам не платять за це - не лізьте у нього.

Подякували: Дмитро-Чебурашка1

3

Re: Допоможіть розібрати код.

А чому говнокод? Як на мене то тут не автозгенерованого коду десь 1% а може і такого проценту немає, тому тут важко судити.

4

Re: Допоможіть розібрати код.

Якщо тільки та функція ініціалізації форми не сама створилася (може бути у візуал студіо, чи с++ білдері) під час напихання компонентами, то це дійсно страшний гівнокод.

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/

5

Re: Допоможіть розібрати код.

Яким чином з того, що код автогенерований, випливає, що він не гівнокод?

6

Re: Допоможіть розібрати код.

Справидливо, але всерівно я не бачу тут паганого коду, навіть якщо припустити що це хтось написав вручну, що тут не так?

Re: Допоможіть розібрати код.

Дуже дуже дякую!!

8 Востаннє редагувалося Дмитро-Чебурашка (20.01.2015 20:00:04)

Re: Допоможіть розібрати код.

Спасибі велике!! Звичайно цей код згенерований, причому програмою Spices.Net Decompiler
а ось увесь проект. Причому я не зрозумів, як він з'явився! Я жал- тиснув усі кнопки, і раптом ось, з'явився,

напевно, правильно писати не проект, а просто код. Нічого подібного я раніше не бачив, такого ось коду тобто!
І не можу судити поганий він або хороший, а хотів розібрати його, що він, тому що хотів зрозуміти.

Здається код таки нормально читається, я не можу судити строго. що в йому паганого.


А цікаво подивитися приклади дуже красивого гарного коду!