Net polozka v poli

Miroslav Draxal evik na volny.cz
Neděle Leden 21 16:39:36 CET 2018


Dobrý den.

Tak neříkám že jsem nějaký přeborník, ale net je taková platforma, kde je toho tolik, že obyčejný člověk, který to nedělá jako profík, nemá šanci obsáhnou vše (a profíci se podle mě jenom tak tváří). Takže mezery budu mít, ale něco asi zvládám. 

To co se snažím vytvořit je upgrade mého vlastního komunikačního protokolu. Celá struktura je vlastně popis celého komunikačního protokolu (stručně řečeno). Ve struktuře jsou popsané metody, jak přijmout a co udělat s paketem, jak ho poslat, složit, rozebrat,  vytvářet události na konkrétní stavy podle paketů, které přišly , reagovat na události, které se dějí v jiných částech programu nebo události které vytvářejí jiné pakety v poli atd. Docela koukám, že ta struktura se chová vlastně jako třída.  

Není to webová aplikace (ta je pouze jako nadstavba), je to normální aplikace do PC.

Součástí paketů vysílaných i přijímaných je i číslo paketu, které se shoduje s číslem pozice v poli struktur.

To zapouzdření je mi jasné. Holt to nechám tak jak to mám do teď při inicializaci.

 

Private Buffer(255) As _Paket_

For i As UInt16 = 0 To 255

    Buffer(i).CisloPaketu = i

Next

 

Přehlednosti mi právě vadí to (bude to nejspíš jenom v mé hlavě), že pokud je paket vyřízen, tak 

Buffer(i) = Nothing

mi zároveň vymaže i to CisloPaketu. Takže ho musím neustále obnovovat. Pokud je CisloPaketu nastaveno na správnou hodnotu, pak se nedá 

If IsNothing(Buffer(i)) then 

Atd. Je toho víc. Tak mě právě napadlo to o zjišťování pozice prvku ze vnitř pole. 

Jak někdo napsal. Tady by se šiklo, kdyby ten odpor právě něco věděl o svém okolí.

 

Díky za reakce. Tímto beru tuto záležitost za uzavřenou.

Míra

 

From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Ladislav Vaiz
Sent: Saturday, January 20, 2018 10:41 PM
To: HW-news
Subject: Re: Net polozka v poli

 

Musela by mít k dispozici ono pole a nalézt tam referenci na svou strukturu. Což pří hodně prvcích může být pomalé. Mě se ale nelíbí porušení základní myšlenky OOP - zapouzdření. Pole (obecně nějaká kolekce) je jiná třída než vaše struktura (rozdíly mezi strukturou a objektem nyní neuvažujme). Index je vlastně implementační detail té kolekce a struktuře do něj nic není. Co, když strukturu vložím do úplně jiné kolekce (List, Dictionary)? Tam žádný index není. 
Připadne mi, že sice píšete v .NET, ale přemýšlíte v jiném programovacím jazyce.
Spíše se zamyslete, co je skutečným klíčem pro vaši strukturu a zda nepoužít třeba nějakou generickou kolekci. To může začátečníkovi znít složitě, ale pracuje se s nimi opravdu jednoduše.
L.



Dne 20.1.2018 v 18:40 Miroslav Draxal napsal(a):

Mám pole struktur, ve struktuře metodu, která pracuje se svým číslem prvku pole.

Má metoda nějakou šanci zjistit své číslo prvku v daném poli? 

Podle toho, co jste psal, tak asi ne.

 

Takhle je to lépe popsáno? Asi se moc dobře nevyjadřuji.

Míra  

 

From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Ladislav Vaiz
Sent: Saturday, January 20, 2018 4:03 PM
To: HW-news
Subject: Re: Net polozka v poli

 

Dobrý den,
kód nechápu a po převedení na c# také ne. Pokud byste vybral prvek z pole a předal ho metodě, tak se přenese pouze hodnota a už nemáte šanci získat index.
Předávat index mi nepřipadne jako úplně špatné řešení.
L.

Dne 20.1.2018 v 15:19 Miroslav Draxal napsal(a):

Dobrý den,

S dotazem na zdejší odborníky přes NET.

Existuje nějaká metoda, jak by mohla struktura v poli zjistit svou aktuální pozici ze vnitř?

 

    Friend Structure x

        Friend neco As String

        Private PoziceVpoli As Integer '=???

 

        Friend Sub UdelamNeco()

            ' tady použiji proměnnou PoziceVPoli, která by měla nabývat hodnoty pořadí v poly xx

        End Sub

    End Structure

 

    Private xx(20) As x

 

 

Díky za náměty

 

Ps. nerad bych to dělal takhle

    Friend Structure x

        Friend neco As String

 

        Friend Sub UdelamNeco(PoziceVpoli)

            ' tady použiji proměnnou PoziceVPoli, která by měla nabývat hodnoty pořadí v poly xx

        End Sub

    End Structure

 

    Private xx(20) As x

 

    Private Sub xxx()

        xx(10).UdelamNeco(10)

    End Sub

 

 







_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

 






_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

 

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20180121/b531c007/attachment.html>


Další informace o konferenci Hw-list