Hirdetés
- sh4d0w: Kalózkodás. Kalózkodás?
- sziku69: Fűzzük össze a szavakat :)
- Ndruu: Segíts kereshetővé tenni a PH-s arcképeket!
- Magga: PLEX: multimédia az egész lakásban
- Luck Dragon: Asszociációs játék. :)
- btz: Internet fejlesztés országosan!
- gban: Ingyen kellene, de tegnapra
- bambano: Bambanő háza tája
- [K2]: Synology NAS és a felhő
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Aktív témák
-
pmonitor
aktív tag
A C# topikban volt 2 kijelentés, ami arra ösztönzött, hogy írjak 1 példa kódot. Ezek a kijelentések. Az egyik:
c#-ban mindennek van egy közös szülőtípusa, úgy hívják object
A másik:
Igen. Foreachel, de igazából, while, for, tökmindegy mivel gyűjteményeken iterálsz végig, nem típuson.
A következő kódban egyértelműen látszik, hogy mi a fő különbség a class és a struct között.
Mint ahogy az is látható, hogy a foreach megvalósítható while() és for() ciklussal is, de:
1: Nem erre találták ki ezeket, hogy 1 user programozó így használja ezeket, amikor ott van a foreach(). A foreach direkt erre készült.
2: A while() használata esetén igazából 3 utasítás az, amit a foreach() 1 utasítással megold.
3: A foreach használata biztonságosabb, mint a while(). Lásd a példakódban azt a sort, aminek a végén a "//BUMMM!!!" megjegyzés van.using System;
using System.Collections.Generic;
namespace Teszt
{
class TesztOsztaly
{
public int X { get; set; }
public TesztOsztaly(int x)
{
X = x;
}
}
struct TesztStruct
{
public int X;
public TesztStruct(int x)
{
X = x;
}
}
internal class Program
{
static void Main(string[] args)
{
List<TesztOsztaly> tesztosztalyok = new List<TesztOsztaly>();
tesztosztalyok.Add(new TesztOsztaly(1));
tesztosztalyok.Add(new TesztOsztaly(2));
tesztosztalyok.Add(new TesztOsztaly(3));
foreach (TesztOsztaly item in tesztosztalyok)
{
//if (item.X == 2) item = new TesztOsztaly(6); //Invalid!!!
//if (item.X == 2) tesztosztalyok.Remove(item); //Invalid!!!
//tesztosztalyok[1] = new TesztOsztaly(5); //Invalid!!!
item.X = 11;
}
for (int i = tesztosztalyok.Count - 1; i >= 0; --i)
{
if (tesztosztalyok[i].X == 1) tesztosztalyok.RemoveAt(i); //Valid!!!
if (tesztosztalyok[i].X == 2) tesztosztalyok[i] = new TesztOsztaly(6); //Valid!!!
if (tesztosztalyok[i].X == 6) tesztosztalyok[i] = new TesztOsztaly(8); //Valid!!!
}
HashSet<TesztOsztaly> htesztosztalyok = new HashSet<TesztOsztaly>();
htesztosztalyok.Add(new TesztOsztaly(1));
htesztosztalyok.Add(new TesztOsztaly(2));
htesztosztalyok.Add(new TesztOsztaly(3));
htesztosztalyok.Add(new TesztOsztaly(4));
HashSet<TesztOsztaly>.Enumerator enumerator = htesztosztalyok.GetEnumerator();
while (enumerator.MoveNext())
{
TesztOsztaly item = enumerator.Current;
//if (item.X == 3) htesztosztalyok.Remove(item); //Invalid!!!
item.X = 11;
item = new TesztOsztaly(3); //BUMMM!!!
}
Console.WriteLine("htesztosztalyok:");
foreach (TesztOsztaly item in htesztosztalyok)
{
Console.WriteLine(item.X);
}
Console.WriteLine("");
foreach (TesztOsztaly item in htesztosztalyok)
{
item.X = 12;
}
foreach (TesztOsztaly item in htesztosztalyok)
{
Console.WriteLine(item.X);
}
Console.WriteLine("tesztstructlist:");
List<TesztStruct> tesztstructlist = new List<TesztStruct>();
tesztstructlist.Add(new TesztStruct(1));
tesztstructlist.Add(new TesztStruct(2));
tesztstructlist.Add(new TesztStruct(3));
tesztstructlist.Add(new TesztStruct(4));
foreach (TesztStruct item in tesztstructlist)
{
//item.X = 11; //Invalid!!!
}
List<TesztStruct>.Enumerator enumeratorstruct = tesztstructlist.GetEnumerator();
while (enumeratorstruct.MoveNext())
{
TesztStruct item = enumeratorstruct.Current;
Console.WriteLine(item.X);
}
Console.ReadKey(true);
}
}
}Aki ezt a kódot megérti, hogy mi miért úgy történik ahogy, akkor ő megértette a lényeget. És nem ír olyanokat, hogy tökmind1, hogy foreach(), for(), vagy while().
Aktív témák
- Xiaomi 15 - kicsi telefon nagy energiával
- Még nincs is Vivo X300 Ultra, de már a nemzetközi kameratrónra pályázik
- sh4d0w: Kalózkodás. Kalózkodás?
- Mindenki bukja a Blackwell chipeket, ha bejön Trump terve
- sziku69: Fűzzük össze a szavakat :)
- VR topik (Oculus Rift, stb.)
- Spórolós topik
- Kínai és egyéb olcsó órák topikja
- Ndruu: Segíts kereshetővé tenni a PH-s arcképeket!
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- BESZÁMÍTÁS! Gigabyte Z37 i5 9600K 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA ADATA 600W
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 1TB SSD RTX 4070 12GB Rampage SHIVA Cooler Master 750W
- BESZÁMÍTÁS! GB B450 AORUS Elite R5 5600X 32GB DDR4 1TB SSD NITRO+ RX 6700XT 12GB Rampage SHIVA 750W
- BESZÁMÍTÁS! ASRock B450M R5 5500 16GB DDR4 512GB SSD Strix RTX 2070 8GB Rampage SHIVA ADATA 600W
- BESZÁMÍTÁS! ASRock B450M R5 3500X 16GB DDR4 512GB SSD RTX 3050 8GB GameMax STORM Black EVGA 600W
- Új Asus 16 Vivobook WUXGA IPS Nano Ryzen5 7430U 4.3Ghz 16GB 512GB SSD Radeon RX Vega7 Win11 Garancia
- Gamer PC-Számítógép! Csere-Beszámítás! Mini PC! I5 10600KF / RTX 3060 12GB/ 16GB DDR4 / 1TB SSD
- HIBÁTLAN iPhone 13 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3755, 91% Akkumulátor
- BESZÁMÍTÁS! Asus H370 i7 8700K 16GB DDR4 512GB SSD RTX 2070 8GB RAMPAGE Shiva A-data 600W
- OLCSÓBB 10.13.! Dell Latitude Precision XPS Üzleti gépek, 2-in-1 gépek, Vostro 8-12. gen.
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

