🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #22193

Re: znow sie pogubilem

#22193
From: Łukasz 'Maly' Ostrowski
Date: Wed, 08 Jun 2011 09:28
78 lines
3529 bytes
On Wed, 8 Jun 2011 10:55:51 +0200, qaz wrote:
>> (*) - przyjęło się że nazwy typów pisze się z
>> WielkiejLitery a pola i zmienne zaczyna małąLiterą.
> Przyjąłem
> <snip>
> public partial class klienci : Form

Co konkretnie przyjąłeś? Czy przyjąłeś do wiadomości i
zignorowałeś konwencje nazewnictwa którą opisałem,
a która dużo rzeczy unifikuje ;-)?

> form2:
> //...
> private void button1_Click(object sender, EventArgs e)
> {
> Form kl = new klienci();
> kl.ShowDialog();
> this.textBox1.Text = kl.psWk;  //
> }
> //...
> 
> Error 1 'System.Windows.Forms.Form' does not contain a definition for 'psWk' 
> and no extension method 'psWk' accepting a first argument of type 
> 'System.Windows.Forms.Form' could be found (are you missing a using 
> directive or an assembly reference?) ...
> 
> Trudno, możecie ulżyć sobie ale czego nie wiem ?

Na pierwszy rzut oka to nadal niczego nie wiesz. ;-).
Przeczytaj coś, poważnie, i nie mam na myśli bloga
Staszka z Koziej Wólki. ;-).

Niech stracę, wytłumaczę to tak czy inaczej:

Podsumowywując, w uproszczeniu, masz:

public class KlienciForm : Form
{
    public string PSWk { get; set; }
}

I przypisujesz instancje tej klasy w ten sposób:

Form form = new KlienciForm();

Widzisz problem? Mocno typowane języki, w przeciwieństwie
do abominations jak PHP, maja to do siebie, że są mocno
typowane, jezeli instancję klasy pochodnej (KlienciForm) 
przypisujesz do zmiennej typu bazowego(Form) to niejako 
"gubisz" informację że tam "w środku" jest KlienciForm,
która ma property PSWk.

Czyli, zamiast:
Form kl = new klienci();
wystarczy:
Klienci kl = new Klienci(); // *

Taaadaaa. kl.PSWk jest widoczne.

*) pozwoliłem sobie zmienić casing identyfikatorów, na
   poprawny.

Jako bonus, dobrze jest ujmować wyświetlanie modalnych
formularzy(**) w bloki using() żeby sprzątać od razu zasoby.

using(Klienci kl = new Klienci())
{
    kl.ShowDialog(this);
    textBox1.Text = kl.PSWk;
}

**) Generalizując, wszystko co jest IDisposable najlepiej
    ujmować w takie bloki, jeżeli można je deterministycznie
    zwolnić.

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.eu/
Technical Details
Message-ID: <uipwjgpwti99$.bxkpkm8r9l9m$.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <4de88723$0$2440$65785112@news.neostrada.pl> <f0d2b8ca-4ff0-44bc-a255-bc7e72ee7eb7@s2g2000yql.googlegroups.com> <4de8b4ad$0$2497$65785112@news.neostrada.pl> <f86bf68d-f9ee-4c03-b0a7-bfb9411474b7@y12g2000yqh.googlegroups.com> <4dec8f29$0$2439$65785112@news.neostrada.pl> <4dec9398$0$2486$65785112@news.neostrada.pl> <61a8bb4d-9345-4a5a-a1d5-ca0351595fe2@e35g2000yqc.googlegroups.com> <4dedcc87$0$2459$65785112@news.neostrada.pl> <29nnpgk66jqc$.ukps31o3saeg$.dlg@40tude.net> <4def391a$0$2441$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: znow sie pogubilem
Date: Wed, 8 Jun 2011 11:28:21 +0200
Organization: Acme
Lines: 78
Message-ID: <uipwjgpwti99$.bxkpkm8r9l9m$.dlg@40tude.net>
References: <4de88723$0$2440$65785112@news.neostrada.pl> <f0d2b8ca-4ff0-44bc-a255-bc7e72ee7eb7@s2g2000yql.googlegroups.com> <4de8b4ad$0$2497$65785112@news.neostrada.pl> <f86bf68d-f9ee-4c03-b0a7-bfb9411474b7@y12g2000yqh.googlegroups.com> <4dec8f29$0$2439$65785112@news.neostrada.pl> <4dec9398$0$2486$65785112@news.neostrada.pl> <61a8bb4d-9345-4a5a-a1d5-ca0351595fe2@e35g2000yqc.googlegroups.com> <4dedcc87$0$2459$65785112@news.neostrada.pl> <29nnpgk66jqc$.ukps31o3saeg$.dlg@40tude.net> <4def391a$0$2441$65785112@news.neostrada.pl>
NNTP-Posting-Host: static-78-9-71-129.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1307525341 7869 78.9.71.129 (8 Jun 2011 09:29:01 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Wed, 8 Jun 2011 09:29:01 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit