- hege8888: Retro Kocka Kuckó 3
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- btz: Internet fejlesztés országosan!
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
Hirdetés
Új hozzászólás Aktív témák
-
drkbl
őstag
válasz
Neil Watts #2898 üzenetére
1) Felveszel egy boolean mezőt az osztályba, amit igazra állítasz az első lefutás előtt, majd az eseménykezelőben nézed, hogy hamis-e még, csak akkor fut le a ciklus
bool Feltoltve = false; // [L:http://msdn.microsoft.com/en-us/library/83fhsxwc(v=VS.80).aspx]a default false[/L], de így talán érthetőbb a kód
private void buttonBeolvas_Click-be az új kódod az alábbi, régi szerint:
if (!Feltoltve) {
for (int i = 0; i < elemszam; i++) {
Nevek[elemszam] = Benevek[i];
Azon[elemszam] = BeAzon[i];
elemszam++;
}
Feltoltve=true;
}vagy
2) buttonLista.Enabled = true; után buttonBeolvas.Enabled=false; így rá sem tud kattintani még1x
-
Szia!
Működik már az egész programom, (a felhasználókezelés is) csak azt nem sikerül kivédenem, hogyha rákattintok a Beolvas majd a Lista gombokra akkor ugye kiírja a vektort. No igen, csak ha megint rányomok a Beolvas gombra akkor elszáll túlindexeléssel amit meg is értek, mert nem fér már bele a cucc.
Hogy tudnám azt kikerülni, hogy második üres kattintásnál ne történjen semmi?
-
drkbl
őstag
válasz
Neil Watts #2895 üzenetére
Hasonló esetben használd a debugger töréspontját, ha az elemszam++; sorra tettél volna egy töréspontot, láttad volna, hogy nem lép be a ciklusba
-
atti1848
senior tag
Sziasztok.
Egy elég furcsa kérdésem lenne.
Programozás órára kell írnom egy egyszerű programot Visual Studioban C# nyelvben.Tippet kérnék,hogy mégis mit lehetne megvalósítani egy elégséges jegyre.
Legelső gondolatom egy kép párosító kicsike program: lenne több kép egy form-ban, persze mindből 2db.Úgy gondoltam,hogy valahogy button-el kellene,hogy először mind sima üres gomb legyen majd rákattintok 1-re megjelenik rajta a kép, másikra ugyan ez, max egy menetben 2 gombra lehessen kattolni.A gombok minden indításnál máshol jelennének meg,persze nem érintkeznének.
Meg lehetne ezt oldani valahogy?Olvasgattam és az egyforma képeknek ugyan azt a TAG tul.-ot adnám,meg ezzel hasonlítva őket.Ha épp ugyan az 2db kép jelent meg akkor azok eltünnének.Hogy kellene eltüntetni gombokat, vagy forgatni,hogy egyszer üres,másszor kép legyen, hogy kell a gombokat random rakosgatni?
Szerintetek elég lenne ez elégségesért?És kivitelezhető?
Tippeket és segítségeteket nagyon köszönöm előre is.
-
-
Chipi333
csendes tag
válasz
Neil Watts #2893 üzenetére
Amikor indítod a ciklust akkor i és elemszam is 0, szóval nem lépsz be a ciklusba(egyenlőek => i<elemszam = false). Ráadásul utána minden iterációban mind2t növelnéd, ez így sehogy se jó.
for (int i = 0; i < BeNevek.Length; i++) - szerintem itt inkább ezt akarod csinálni. -
-
drkbl
őstag
válasz
Neil Watts #2890 üzenetére
Gondolom a Beolvas gombra kattintasz elsőre. elemszam=0, az i ciklus addig tart, amíg i kisebb, mint elemszam, nulláról indulva. Ez sosem teljesül, elemszam marad 0.
-
válasz
Neil Watts #2890 üzenetére
ja még annyi hogy a Benevek és a BeAzon tömbben még 25 név van.
-
Sziasztok!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace tobbVektorBeszurTorol
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string[] Benevek = new string[] {"Hack Elek"};
string[] BeAzon = new string[] {"HackE"};
string[] Nevek = new string[50];
string[] Azon = new string[50];
int elemszam = 0;
//int elemszam_Azon = 0;
private void buttonBeolvas_Click(object sender, EventArgs e)
{
for (int i = 0; i < elemszam; i++)
{
Nevek[elemszam] = Benevek[i];
Azon[elemszam] = BeAzon[i];
elemszam++;
}
buttonLista.Enabled = true;
}
private void buttonLista_Click(object sender, EventArgs e)
{
dataGridViewLista.RowCount = elemszam;
dataGridViewLista.ColumnCount = 3;
dataGridViewLista.RowHeadersWidth = 150;
dataGridViewLista.Columns[0].HeaderCell.Value = "Név";
dataGridViewLista.Columns[0].Width = 200;
dataGridViewLista.Columns[1].HeaderCell.Value = "Felhasználónév";
dataGridViewLista.Columns[1].Width = 200;
dataGridViewLista.Columns[2].HeaderCell.Value = "Rendelési azonosító";
dataGridViewLista.Columns[2].Width = 200;
for (int i = 0; i < elemszam; i++)
{
dataGridViewLista.Rows[i].HeaderCell.Value = (i + 1).ToString() + ". fehasználó";
}
}
}
}Ennek meg mi baja lehet? A dataGridViewLista.RowCount = elemszam; sornál akad ki, csak azt nem tudom, hogy mi a francért. Azt írja, hogy az elemszam 0.
"Value of '0' is not valid for 'RowCount'. 'RowCount' must be greater than or equal to 1.
Parameter name: RowCount"De miért? Hiszen folyamatosan növelem, úgy hogy jó legyen... eh
Üdv. core2
-
hc89yk
csendes tag
Sziasztok,
AForge.NET témakörben kérdeznék egy olyat, ha esetleg valaki tudna válaszolni, hogy:
ColorFiltering filter = new ColorFiltering();
filter.Red = new IntRange(0, 150);
filter.Green = new IntRange(170, 255);
filter.Blue = new IntRange(0, 190);
filter.ApplyInPlace(uimage);Ezzel a kódrészlettel lehet beállítani azt, hogy a program a képen melyik színre reagáljon. Ez perpillanat a zöld színt képes megtalálni. Próbálkoztam már más szín range-ének megadásával, de ezen kívül semmi másra nem reagál. Kerestem google-ban ilyet, hogy range calculator (lehet ez egy naív ötlet volt), de ilyet se találtam. Ha esetleg valaki foglalkozott már ezzel, megköszönném ha kisegítene. Legfőképpen még a kék, piros és sárga színek kellenének nekem, de igazából ha tudja valaki mi alapján lehet belőni neki a színeket, azt mégjobban megköszönném.
Előre is köszönöm a válaszokat!
-
drkbl
őstag
Esetleg ez segít legyártani az Encoding leszármazottat.
-
amargo
addikt
Most valamit komolyan nem értek, nem rég futottam bele, silverlight-ban nincs ASCII kódolás.
No és a kérdésem ki hogy oldja fel ezt a problémát?
Most komolyan kell ehhez írni egy konvertálót? Mert akkor előtúrom a régi kódjaimat.. -
ubid
senior tag
-
ArchElf
addikt
válasz
norbitális #2875 üzenetére
Ja értem... nem ártott volna a kódot is nézni
a
b c
d e f
g h i j
k l m n o
p q r s t u
v w x y z 0 1minek kellene ebből lennie...?
a b d g k p v
c e h l q w
f i m r x
j n s y
o t z
u 0
1
ez?AE
-
ArchElf
addikt
válasz
norbitális #2875 üzenetére
Egy véletlen számú elemből álló sorokból álló fix számú tömböt hogy transzponálsz?
ebből
x x x x
x x
x x x
x
x x
x x x x x
x x xez lenne
x x x x x x x
x x x x x x
x x x x
x x
xAE
-
válasz
norbitális #2875 üzenetére
Ezt a feladatot értelmezni sem sikerült igazán...
gondolom sulis példaprogram. Viszont használhatsz nyugodtan értelmes elnevezéseket. A programozás nem a rejtjelezésről szól és egy nagyobb programnál két hét után az, hogy Tomb2dahpr vagy ahm semmit nem fog mondani. Nekem már most sem mond semmit.
-
norbitális
tag
Hali!
Itt egy program:
using System;namespace Tomb2dahpr
{
class Program
{
static void Main(string[] args)
{
Random m = new Random();
long[][] ahm = new long[7][]; // a sorok 7-elemű vektora// minden sor hossza más és más
for (int i = 0; i < ahm.Length; i++)
ahm = new long[i + 1];// a tömb feltöltése
for (int i = 0; i < ahm.Length; i++)
for (int j = 0; j < ahm(i).Length; j++)
ahm(i)[j] = (long)(m.Next(12) + 1);// a tömb megjelenítése
Console.WriteLine("Az ahm tömb tartalma:");
for (int i = 0; i < ahm.Length; i++)
{
for (int j = 0; j < ahm(i).Length; j++)
Console.Write(ahm(i)[j] + "\t");
Console.WriteLine();Console.ReadLine();
}
}
}Szóval ezt kéne úgy megcsinálni, hogy legyen egy másik tömb amit ugyanúgy random számokkal kell feltölteni csak pont tükrözni kell az első háromszög átlójára, és ki is kell iratni
-
amargo
addikt
Vajon miért akarja felrakni WP SDK esetén folyton a Express-t?
-
amargo
addikt
Ui.:
További anyagokat is találsz a letöltések között. -
ubid
senior tag
Helló!
Referenciát törölni hogy lehet ?
Ajax toolkit-et használtam, viszont elsőként referenciába adtam hozzá egy kicsit régebbi verziót, majd beregisztráltam.
De azt írta minden ajaxos elemre hogy ő nem ismer ilyet. aláhúzta... lefordult, viszont mindig warning volt.
Ez után gondoltam nuget managerrel felrakom.
Feltelepítette.
Most viszont Error ír :Error 11 Assembly 'AjaxControlToolkit, Version=4.1.51116.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e' uses 'System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
-
G3kko
tag
válasz
Neil Watts #2868 üzenetére
Köszönöm, most már lesz elég induló anyag!
Majd még könyvesboltokban is szétnézek. -
G3kko
tag
Sziasztok!
Tudnátok olyan könyvet/ket ajánlani, amikből jól el lehet sajátítani ezt a nyelvet, és nem hemzseg a hibáktól. (Rendelkezem némi alapismerettel, de ismétlésnek jó, ha az alapoktól indul.)
Köszönöm segítségetek! -
fatal`
titán
válasz
James Bond #2863 üzenetére
Elég pongyolán fogalmaztam, ki is javítottak.
Van sebességkülönbség, de szerintem ennyi elemnél a mai hardverekkel minimális.Csak az a problémám, hogy példányosított objektumokat hogy lehet menteni és
egy másik alkalommal visszatölteni?Pl. objektumszerializációval
-
James Bond
csendes tag
Hali!
Tehát sebességben nincs különbség a tömb és a collection-ök között.
ArrayList-et szoktam használni, a példányosított objektumokat (class-okat) beledobálom
és ciklussal végigszaladok az ArrayList-en.Csak az a problémám, hogy példányosított objektumokat hogy lehet menteni és
egy másik alkalommal visszatölteni?Egyébként készül a lottó progim, innen letölthető:
http://data.hu/get/4741961/Lotto5.zip
Remélem fut Framework 3.5-alatt, mert arra volt állítva.Chris
-
PPatrik
aktív tag
Sziasztok!
Van egy programom, aminek az a feladata, hogy a számítógép indulásakor bizonyos folyamatokat elindítson és a utána felügyelje őket, úgy hogy dinamikusan adhatok hozzá újabb folyamatokat. Én arra gondoltam, hogy dll-ekbe írom a folyamatokat, készítek bele egy start nevű osztályt és ebbe rakom bele a start, stop, sleep, stb. metódusokat. A felügyelő programban pedig létrehozok egy példányt a startból és annak adom az utasításokat.
Ezt nem tudom, hogy egyáltalán meg lehet-e oldani, ilyennel még nem foglalkoztam.
Köszi a segítséget! -
martonx
veterán
válasz
Peter Kiss #2857 üzenetére
köszi kipróbáltam. Ilyenkor még ha a kód nem is egyértelműen azt mutatja, de valóban a kapcsolat tábla íródik. Nyakatekert ez az EF, de használható.
-
Peter Kiss
őstag
válasz
martonx #2856 üzenetére
Kapcsolatot nem is kell tudnod törölni, egyik entitást kell törölnöd a másikból, mindent lekezel ez EF.
var artist = new Artist { FirstName = "Alan", LastName = "Jackson" };
var album1 = new Album { AlbumName = "Drive" };
var album2 = new Album { AlbumName = "Live at Texas Stadium" };
artist.Albums.Add(album1);
artist.Albums.Add(album2);
///...
artist.Albums.Remove(album2); -
martonx
veterán
Bemásolom ide is a problémámat, hátha lesz valaki, aki keni - vágja az Entity Framework-öt:
Adott 3 tábla, ahol az egyik csak arra való, hogy a másik kettő közötti több a többhöz kapcsolatokat tárolja. Ennek a kapcsoló táblának csak két mezője van, tábla1id és tábla2id. A két mező együttesen alkotja a Primary Key-t.
A gondom az, hogy amikor ezekből modelt készítek, a kapcsoló tábla nem jön létre önálló entitásként, csupán a másik két tábla navigation property-jei között jön létre az egymásra hivatkozás ezen a táblán keresztül. Viszont mivel nem önálló entitás, ezért nem tudok írni, törölni kapcsolatokat.
Vicces, de ha létrehozom az ez esetben totál felesleges ID mezőt a kapcsoló táblában, és ezt adom meg PK-nak, akkor az EF szépen legenerálja belőle az entitást, és szépen működik. Így viszont SQL teljesítmény problémáim lesznek a későbbiekben, pont egy totál lényegtelen mező lesz a kulcsom, amit soha semmire nem fogok használni.
Tanácstalan vagyok, hogyan oldanátok meg ezt a problémát?
-
-
amargo
addikt
Hi!
Egy olyan kérdésem lenne, hogy delphi-ről térne át pár kollégám C#-ra, Ti mit ajánlanátok segítség nyújtás képen?
Én szeretném, ha inkább már a WPF-el ismerkednének - vastagklienst kell gyártani, gyorsan.Olyanokra gondolok, hogy szintaktikai különbségeket meg kell mutatni. Ugyan akkor a szemantikáról is beszélni kell, mert itt másképpen és máshogy lehet megtenni dolgokat.
De utána a nagy részében a C# jegyzet-re támaszkodnék. egyéb ötletek?Köszönet!
-
tototos
addikt
Sziasztok!
Az lenne a kérdésem, hogy c# kódból tudok c vagy c++ függvényeket hívni? Van egy eszköz amihez csak c és c++ api áll rendelkezésre, és ezt kellene illeszteni egy c# programhoz.
-
fatal`
titán
válasz
James Bond #2847 üzenetére
Egy listán ugyanolyan gyorsan végigszalad és sokkal normálisabban néz ki a kód.
Nem véletlenül vannak a collectionök. Én tömböt csak akkor használok, ha valaminek fix mérete van.
-
James Bond
csendes tag
válasz
ArchElf #2845 üzenetére
Köszi a segítséget, működik minden rendesen, beolvassa a számokat.
FileStream fs = new FileStream("Lottootos.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string s = sr.ReadLine();
int i = 0;while (s != null)
{
String[] sorolvas = s.Split(',');
GlobalVar.Szamindex = i;
GlobalVar.Globalstring = s;
GlobalVar.Szelvenyev = Int32.Parse(sorolvas[0]);
GlobalVar.Szelvenyhet = Int32.Parse(sorolvas[1]);
GlobalVar.Szelvenyszam1 = Int32.Parse(sorolvas[2]);
GlobalVar.Szelvenyszam2 = Int32.Parse(sorolvas[3]);
GlobalVar.Szelvenyszam3 = Int32.Parse(sorolvas[4]);
GlobalVar.Szelvenyszam4 = Int32.Parse(sorolvas[5]);
GlobalVar.Szelvenyszam5 = Int32.Parse(sorolvas[6]);
s = sr.ReadLine();
i = i + 1;}
GlobalVar.Tombhossz = i - 1;
sr.Close();
fs.Close();Egyébként a tabulátort nem fogatta el nekem (a \t re persze nem jöttem rá)
Úgyhogy vesszőre cseréltem a TAB-ot, így jobb is.Hunfatal-nak is köszönöm a választ.
Memteszt:-) Az 5000 tömb a lottószelvényeknek van, az eddig kihúzott lottószámokat takarja, ami idáig 2867, de úgy gondoltam legyen 5000-ig.
Akkor számoljunk 5000 Int tomb az 4*5000 byte = 20 k
140 k-használtam el, hát igen a C64-en nemigen írnám meg a progit.
Jobban szeretem az ilyen sima tömböket a gép csak végigszalad rajta és gyorsan
végez.Chris
-
ArchElf
addikt
válasz
James Bond #2843 üzenetére
string[] sl = s.Split('\t');
Amúgy mi ez a sok 5000 elemű tömb? Te is használj List<int>-et helyette (vagy struct-ot, Dataset-et, a struktúrált adatokkal dolgozol)...
ehh, elmentem időközben teát csinálni
AE
-
fatal`
titán
válasz
James Bond #2843 üzenetére
String[] darabolt = s.Split('\t')
-
James Bond
csendes tag
Köszi a választ, jó lett a satic-al.
public static class GlobalVar
{
public static string GlobalString = "gfdgdsg";
static int[] szelvenyev = new int[5000];
static int[] szelvenyhet = new int[5000];
static int[] szelvenyszam1 = new int[5000];
static int[] szelvenyszam2 = new int[5000];
static int[] szelvenyszam3 = new int[5000];
static int[] szelvenyszam4 = new int[5000];
static int[] szelvenyszam5 = new int[5000];static int szamindex;
public static int Szamindex
{
get
{
return szamindex;
}
set
{
szamindex = value;
}
}Még egy kérdésem lenne:
public Form1()
{
GlobalVar.Szamindex = 50;FileStream fs = new FileStream("Otos.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string s = "";while (s != null)
{s=sr.ReadLine();
}
sr.Close();
fs.Close();Az Otos.txt- fájl ban Tabulátorokkal vannak elválasztva a szamok.
Nekem olyan kéne, hogy a beolvasott sort feldarabolja. s=sr.ReadLine();
-
amargo
addikt
válasz
James Bond #2841 üzenetére
static?
-
James Bond
csendes tag
Hali!
Lenne egy kérdésem.
Globális tömböt szeretnék létrehozni, de valahogy a framework 3.5-tel nem
megy , még régen a 2.0-ásal simán lehetett. Windows Form application.Tehát nyomógombokat rakok ki, majd 2 katt rajtuk, ekkor lehet írni a kódot és
itt kellene látni a tömbömet.VS 2010, C#, 3.5 Fw
Chris
-
hc89yk
csendes tag
Hello,
Szeretném a segítségeteket kérni. A C# aforge részét kellene elsajátítanom és van rá kb 3 napom. Eléggé lehetetlen egy feladatnak minősül, de gondoltam itt vannak olyan emberek akik jobban google-znak mint Én és több infóval rendelkeznek. Egy szimpla "egér követi a kamera képén mozgó beadott tárgyat" programot szeretnék összekreálni. Legyetek szívesek kisegíteni, nagyon hálás lennék. Előre is köszönöm
-
-
ArchElf
addikt
válasz
Neil Watts #2836 üzenetére
Nem félreérthető volt, hanem rossz.
A te megoldásodban minden páros számra kiírta a textboxba (felülirva az előző szöveget), hogy az adott szám páros.1. private void buttonOKrb_Click(object sender, EventArgs e)
2. {
3. if (radioButtonParatlan.Checked)
4. {
5. for (int i = 0; i < veletlentar.Length; i++)
6. {
7. if (veletlentar[i] % 2 == 0)
8. {
9. labelParatlParos.Text = veletlentar[i] + " db páratlan számot sorsolt ki a program";
10. }
11. }
12. }
13. listBox_eredmenyKi.Items.Clear();
14. }Ha kellene egy kis manuális debug:
3. radioButtonParatlan.Checked -> feltételezhetjük, hogy páratlan számokíat keresel
7. if (veletlentar % 2 == 0) -> itt viszont a párosakra ugrik be az if ágra (kettövel osztva nincs eredmény az páros. Ami neked kellett volna az a != 0.
9.c labelParatlParos.Text = veletlentar(i) + " db páratlan számot sorsolt ki a program"; -> itt az aktuális elemé értékét írja ki - még csak nem is a sorszámát, vagy a számosságot (ezt javította Athlon64+).+1 nem értem a fixációt a tömbökkel; rendes gyűjteményekkel (Collection), sokkal könnyebben/értelmesebben lehet dolgozni, mert flexibilisek és egy csomó már előre elkészített funkciót is biztosít.
AE
-
válasz
Peter Kiss #2835 üzenetére
ehh, köszi!
Nem írtam át, így félreérthető, de köszi
-
Peter Kiss
őstag
válasz
Neil Watts #2833 üzenetére
Most páros kell vagy páratlan?
private void buttonOKrb_Click(object sender, EventArgs e)
{
if (radioButtonParatlan.Checked)
{
int q = 0;
for (int i = 0; i < veletlentar.Length; i++)
{
if (veletlentar[i] % 2 == 0) //páratlan vagy páros kell?
{
q++;
}
}
labelParatlParos.Text =q + " db páratlan számot sorsolt ki a program";
}
listBox_eredmenyKi.Items.Clear();
} -
martonx
veterán
válasz
Neil Watts #2833 üzenetére
debug?
-
Sziasztok!
Na, ennek sem kellett volna nekiülnöm kb. 7-kor...
Tudom, nagyon hülye kérdés, de vajh miért nem írja ki azt, hogy hány darab páratlan szám van a kiírásban?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace max4_GYAK
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Random r = new Random();
int[] veletlentar;
/*int elemszam;*/
private void buttonOK_Click(object sender, EventArgs e)
{
if (textBox_veletlenBe.Text != "")
{
int elemszam = Convert.ToInt32(textBox_veletlenBe.Text);
if (elemszam >= 1 && elemszam <= 300)
{
veletlentar = new int[elemszam];
for (int i = 0; i < veletlentar.Length; i++)
{
int veletlen = r.Next(100, 500);
veletlentar[i] = veletlen;
listBox_eredmenyKi.Items.Add(i + ". vektorelem -> "+ veletlentar[i]);
}
}
}
}
private void buttonOKrb_Click(object sender, EventArgs e)
{
if (radioButtonParatlan.Checked)
{
for (int i = 0; i < veletlentar.Length; i++)
{
if (veletlentar[i] % 2 == 0)
{
labelParatlParos.Text = veletlentar[i] + " db páratlan számot sorsolt ki a program";
}
}
}
listBox_eredmenyKi.Items.Clear();
}Köszi a segítséget!
Üdv. core2
-
-
Á, dehogy. Ezt eleve nem túlterhelésnek hívják, másfelől nem szükséges feltalálni a spanyol viaszt. A tryparse nem egy nagy dolog, tessék használni.
A te megoldásod teljesen feleslegesen bonyolítja túl a kódot. Ha ezt megszokod, esetleg egy nagyobb projektnél átláthatatlan lesz a sok hackeléstől az egész.
-
ubid
senior tag
válasz
Gülredy #2822 üzenetére
A túlterhelésre megoldás lehet például, hogy :
checked-el leellenörződ, hogy belefér e.
pl :int ten = 10;
int sum = 2147483647 + ten;
Console.WritLine(sum);
//Output : -2147483639Ezt nyilván túlcsordul.
Erre megoldás így néz ki :
Console.WritLine(checked(214748647 +ten));
checked
{
int o = 214748647 +ten;
Console.WriteLine(o);
}
Így kiváltódik a hiba : OverflowException
Ezt a hibát érdemes egy try-cath blokkal elkapni.Tehát belerakod az a kódsort amit le akarsz kezelni egy try blokkba.
static int CheckedMethod()
{
int z = 0;
try
{
z = checked(maxIntValue + 10);
}
catch (System.OverflowException e)
{
Console.WriteLine("Hohóóó túlcsordult.: " + e.ToString());
}
return z;
} -
Gülredy
tag
ubid kérdéseire a válaszok engem is érdekelnének.
ArchElf:
"Amúgy mivel a kód többi része nem is látható, nem is tudom elképzelni, hogy volt többször lefuttatható a switch rész."goto címke paranncsal
Tehát ha azt választja a felhasználó hogy igen újra akar választani a termékek közül akkor arra van egy switch i vagy n elágazás és ha i-t nyom akkor goto címkét használok.A hibát egyébként megoldottam, tényleg rossz helyen volt a változó deklarálva, csak nem vettem észre. Pedig szinte mindig szoktam használni a debugot de ez esetben ez kimaradt a használata.
Még lenn még egy kérdésem, ha már ezt így megoldottuk:
int valasztas;
valasztas = int.Parse(Console.ReadLine());Itt kérem be azt a számot ami a termékek száma. Magyarul amit választani akarok.
Az lenne kérdésem, hogy itt szükséges parse-olni vagy megoldhatnám parse nélkül?
A fontosabb dolog amire a választ kérném, mivel nem használtam még sok kivételkezelést, így nem igazán vagyok otthonos benne.
Szóval a fenti int.Parse-os sornál szeretném lekezelni a kivételt mivel ha beírom neki hogy 100 az oké arra van egy if utasítás de ha beírok neki mondjuk 50 db 9est akkor dob egy overflow exception-t. Ebből azt akarnám kihozni hogy ha ilyen nagy számot ír be akkor ne exceptiont dobjon hanem csak egy üzenetet hogy "túl nagy a megadott szám".Mindenképp kivételkezeléssel szeretném megoldani hogy ennek a használatával is jobban tisztában legyek!
Ja és köszönöm mindenkinek aki eddig válaszolt!!
-
ubid
senior tag
Közben kérdeznék még egyet.
Google-ba kerestem, de nem találtam rá értelmes leírást :Érték típusoknál mikor érdemes vagy kell használni suffix-et ?
-
ubid
senior tag
válasz
ArchElf #2819 üzenetére
köszi!
Már csak ezzel az egy sorral nem vagyok tisztába.
if (!inint.TryParse(rl, out valasztas))A tryparse-ot ismerem. De ez az inint nem világos.
Meg ha már itt tartunk akkor az out paraméterrel se vagyok kibékülve. (arról már olvastam, de nem világos a használta,hogy mikor kell )
-
ArchElf
addikt
Így működik:
string kosar= "Termékekek: ";
int valasztas;
string rl;
while((rl = Console.ReadLine())!="")
{
if (!inint.TryParse(rl, out valasztas)) continue;
switch (valasztas)
{
case 1: kosar += "Egér, ";
break;
case 2: kosar += "Hangfal, ";
break;
case 3: kosar += "Billentyűzet, ";
break;
case 4: kosar += "Monitor, ";
break;
case else:
break;
}
}Az előző azért nem működik, mert a string kosar= "Termékekek: "; mindig újra inicializálja a kosar változót. Amúgy mivel a kód többi része nem is látható, nem is tudom elképzelni, hogy volt többször lefuttatható a switch rész.
AE
-
kingabo
őstag
válasz
Gülredy #2810 üzenetére
Marha egyszerű: a switch ág előtt mindig létrehozol egy kosarat és ahhoz teszed hozzá. A main fv előtt deklaráld privát adattagként.
(#2811) ubid:
"Annyi biztos, hogy stringhez hozzáfűzni a String.Builder.Append -el lehetséges."Ahogy írtal úgy is lehet stringeket összefűzni.
-
ubid
senior tag
Csináltam egy gyors példát, hogy hogyan kell használni a StringBuildert:
StringBuilder fuzz = new StringBuilder();
fuzz.Append("alma");
Console.WriteLine(fuzz);
Console.WriteLine("Adja meg egy terméket : ");
string t = Console.ReadLine();
fuzz.Append(t);
Console.WriteLine(fuzz);Ha utána akarod fűzni , akkor Append, ha elé akkor meg Insert-et hívsz.
Remélem segített.
-
Gülredy
tag
Sziasztok!
Nem túl régóta foglalkozom a c#-al így gyakorlásképp kitaláltam magamnak egy feladatot amit konzolon akarok kivitelezni.
Egy nagyon egyszerű bevásárló program lenne, van 4 darab termék amit a kosárba lehet pakolni, minden kiválasztás után lehetőségünk van új termék hozzáadásához, és dönthetünk arról hogy befejezzük-e a vásárlást vagy sem.
Röviden ennyi, de amivel gondom van az a következő:
A termékek előtt egy szám áll (1-4) és egy switch case szerkezettel adom meg hogy mit választok. A probléma az, hogy készítettem egy kosár nevű string-et, amibe beírja a választott terméket, ez működik is egy terméknél, de ha választok egy másik terméket is, akkor az nem hozzáadja, hanem felülírja az előzőt.Itt a kód részlet, ha ez nem elég bemásolhatom az egész kódot is de hosszú lenne:
string kosar= "Termékekek: ";
switch (valasztas)
{
case 1: kosar += "Egér, ";
break;
case 2: kosar += "Hangfal, ";
break;
case 3: kosar += "Billentyűzet, ";
break;
case 4: kosar += "Monitor, ";
break;}
A "valasztas" változóba kérem be a számot 1-4 ig és azt szeretném, hogy a kosár nevű stringhez minden egyes alkalommal fűzze hozzá az aktuálisan választott elemet, de csak felülírja a már kiválasztott elemet.
Nem tudom ezt meg lehet-e oldani így switch case-ben vagy sem, de ha igen akkor megköszönnék egy kódrészletet vagy magyarázatot!
-
ArchElf
addikt
Persze, mert a fordító figyel arra, hogy mindenféleképp kapjon értéket.
Ugyanezért nem jó a következő funkció sem
int RosszFunkcio(bool b)
{
int n;
if (b)
{
n = 10;
}
return n;
}
Mivel az if mindkét ága nincs kidolgozva (else ág), így elképzelhető, hogy az n nem kap értéket (mert a függvényt false értékkel hívtuk meg).
Ezért sír a fordító, hogy:
Error 1 Use of unassigned local variable 'n'AE
-
ArchElf
addikt
static void Main(string[] args)
{
int? n;
try
{
//n = 10;
n = int.Parse(Console.ReadLine());
}
catch
{
n = null;
// valami
}
if (n == null)
Console.WriteLine("Valami hiba történt.");
else
Console.WriteLine(n);
}int? -> nullable integer (olyan int, ami nem csak szám-értéket, de null-t is felvehet)
AE
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Házimozi belépő szinten
- Régebbi játékok profilját frissíti az új GeForce driver
- Milyen légkondit a lakásba?
- Kerékpárosok, bringások ide!
- Kormányok / autós szimulátorok topikja
- Yettel topik
- Samsung Galaxy A56 - megbízható középszerűség
- Battlefield 6
- Honda topik
- További aktív témák...
- Új MSI Katana 15 Gamer FHD IPS 144Hz i7-13620H 10mag 16GB 512GB Nvidia RTX 4060 8GB Win11 Garancia
- Wilbur Smith könyvek (15 db) egyben
- Eladó Apple Mac Mini 2012 vége / 12 hó tótállás
- LG 48C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
- GYÖNYÖRŰ iPhone 11 Pro 64GB Space Grey -1 ÉV GARANCIA - Kártyafüggetlen, MS2050, 100% Akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest