eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › [VB .Net] Dlaczego to działa
Ilość wypowiedzi w tym wątku: 4

  • 1. Data: 2012-09-26 12:21:20
    Temat: [VB .Net] Dlaczego to działa
    Od: Krzysiek <k...@p...spam>

    Witam,

    przejąłem właśnie kilka różnych projektów (w większości niewielkich) po
    koledze który odszedł z firmy.
    Jak się okazuje miał on wiele dziwnych nawyków programistycznych, (część
    wynikających chyba z niechlujstwa, część z niedouczenia), ale czasami po
    prostu nie rozumiem dlaczego działa coś co, jak mi się wydaje, działać
    nie powinno.

    Przykład 1:
    Mamy dwie formy: Form1 (startowa) i Form2.
    W kodzie Form1 następują odwołania do Form2 - jej zmiennych, obiektów
    (np. datagridview) i ich metod.
    Nigdzie wcześniej nie ma użytego słowa new w odniesieniu do Form2,
    odwołania następują po prostu przez nazwę klasy. Dzieje się to też
    jeszcze przed użyciem show.

    Czyli np.

    Private Sub Form1_Load (...)
    Form2.zmienna = 5;
    Form2.DataGridView1.Rows.Clear()
    Form2.Show()

    Czy VB automatycznie używa konstruktora przy odwołaniu do formy, czy o
    co w ogóle chodzi? :)

    Przykład 2:
    (inny program) Po użyciu metody Close dla formy Form2 następują
    odwołania do jej zmiennych z formy Form1. A Form2 nie było pokazywane
    przy użyciu showdialog tylko show.

    Zdziwiony
    Krzysiek


  • 2. Data: 2012-09-26 12:59:55
    Temat: Re: [VB .Net] Dlaczego to działa
    Od: IDKrzych <n...@p...onet.pl>

    > W kodzie Form1 następują odwołania do Form2 - jej zmiennych, obiektów
    > (np. datagridview) i ich metod.
    > Nigdzie wcześniej nie ma użytego słowa new w odniesieniu do Form2,
    > odwołania następują po prostu przez nazwę klasy. Dzieje się to też
    > jeszcze przed użyciem show.
    >
    > Czyli np.
    >
    > Private Sub Form1_Load (...)
    > Form2.zmienna = 5;
    > Form2.DataGridView1.Rows.Clear()
    > Form2.Show()
    >
    > Czy VB automatycznie używa konstruktora przy odwołaniu do formy, czy o
    > co w ogóle chodzi? :)
    >
    > Przykład 2:
    > (inny program) Po użyciu metody Close dla formy Form2 następują
    > odwołania do jej zmiennych z formy Form1. A Form2 nie było pokazywane
    > przy użyciu showdialog tylko show.

    W VB w przypadku form mamy automatyczne tworzenie domyślnych egzemplarzy
    (w przypadku odwoływania się po nazwie samej formy)

    Można niszczyć, usuwać z pamięci, a i tak pierwsze odwołanie się do
    formy domyślną nazwą spowoduje utworzenie nowego egzemplarza obiektu.
    Tylko, że to będzie już inny obiekt - najczęściej ma to duże znaczenie.

    Dlatego nie wolno używać nazw form tylko deklarować je po bożemu :)

    Pozdrawiam
    --
    IDKrzych

    "Jakkolwiek będzie - będzie inaczej, aniżeli sobie wyobrażamy
    - ponieważ między Dobrem a Złem znajdujemy się w życiu i w świecie
    wielowymiarowym,
    w którym dokumentnie pomieszane jest Przypadkowe z Nieuchronnym."
    (S. Lem 1999)


  • 3. Data: 2012-09-26 16:17:37
    Temat: Re: [VB .Net] Dlaczego to działa
    Od: Krzysiek <k...@p...spam>

    W dniu 2012-09-26 12:59, IDKrzych pisze:
    > W VB w przypadku form mamy automatyczne tworzenie domyślnych egzemplarzy
    > (w przypadku odwoływania się po nazwie samej formy)

    Ciekawe, strasznie to premiuje niechlujstwo w kodzie. Dzięki za wyjaśnienie.


  • 4. Data: 2012-09-26 17:22:26
    Temat: Re: [VB .Net] Dlaczego to działa
    Od: "R.e.m.e.K" <g...@d...null>

    Dnia Wed, 26 Sep 2012 16:17:37 +0200, Krzysiek napisał(a):

    >> W VB w przypadku form mamy automatyczne tworzenie domyślnych egzemplarzy
    >> (w przypadku odwoływania się po nazwie samej formy)
    > Ciekawe, strasznie to premiuje niechlujstwo w kodzie. Dzięki za wyjaśnienie.

    Czego oczekiwales od basica? :-)

    --
    pozdro
    R.e.m.e.K

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: