Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
Új hozzászólás Aktív témák
-
joysefke
veterán
http://www.c-sharpcorner.com/article/C-Sharp-heaping-vs-stacking-in-net-part-i/
Ez egy régebbi cikksorozat, de a lényeg azóta nem változott. rágd magad át rajta.
-
Alexios
veterán
Hogyne tanítanák progmaton, a tárgyból már nem emlékszem(Programozás vagy C++ volt talán?) de szó volt azért ilyen alap memória kezelés dolgokról nyilván. Ha meg csak a Stack mint algoritmusról van szó pláne
De azért ezek tényleg az alapok c#-nál is, referencia/érték típusok, boxing, stb, szó volt róla, hogy junior c# pozi van megcélozva korábban, ezeknek illene utánanézni előtte.
[ Szerkesztve ]
-
Keem1
veterán
A stack egy olyan tárolási elv, amikor az először bekerülő adat a tároló aljára kerül, a többi rá. Mindig a legfelső adatot éred el, míg az alján lévőt csak akkor, ha kikerült a többi a tárolóból.
First in, last out.Huh mennyi memória számítási feladat volt a fősulin
De ezt progmat szakon nem tanítják? Én mondjuk mérnök informatikus szakot végeztem, ahol a hardver legalább olyan súlyos volt (ha nem súlyosabb), mint a szoftver.
[ Szerkesztve ]
-
Orionk
senior tag
Sziasztok,
A memóriában mit jelent a HEAP és STACK rész?
Azt tudom, hogy ha new módosítóval foglalunk le valamit, akkor a Heap-be kerül és ha a program nem szabadítja fel, mert pl. nincs Garbage Collector, akkor nekünk kell gondoskodni róla.
A Stack pedig az a rész, ahol a primitív típusok foglalódnak le, pl. int, float.De ezeken felül mit jelent ez a két memória terület?
köszi -
Zalanius
tag
Szia,
nem pontosan értem a részleteket, de az biztos, hogy a bitmappel kapcsolatban nincs művelet a függvényedben, talán csak ennyi hiányzik. Az a kód egy körnegyedet rajzolna nagyjából. A "hullám" alapján valami hasonlóra gondoltam, aztán ha más a változók értelme, mint a tippem, akkor azt is igazítani kell:public void Hullam(Bitmap bmp, int x0, int y0, int r, double alfa1, double alfa2, Color szín)
{
double x = 0, y = 0;
while (x*alfa1 < bmp.Width - x0 && y < y0)
{
y = alfa2 * Math.Sin(x);
bmp.SetPixel((int)(x0 + x *alfa1), (int)(y0 - y), szín);
x += 0.01;
}
this.Refresh();
}--= Zalán =--
-
#hpq
aktív tag
válasz Zalanius #7991 üzenetére
Szia!
Nagyon köszönöm a segítséget, tényleg ez volt a gond, hogy nem abba az eseménybe írtam bele.
A következő kérdésem az lenne, hogy egy hullámot szeretnék kirajzoltatni de, nem működik akár mennyire próbálkozom és nem jövök rá hol lehet a probléma.Nagyon szépen köszönöm az eddigi munkádat és segítségedet, nagy szükség volt rá!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
public Color szín = Color.Red;
//függvényeim
public void Kör(Bitmap bmp, int x0, int y0, int r, double alfa1, double alfa2, Color szín)
{
double num1 = 1.0 / (double)r;
int num2 = alfa1 - alfa2 < 0.0 ? 1 : -1;
double num3 = alfa1;
while ((double)num2 * num3 <= (double)num2 * alfa2)
{
int num4 = (int)((double)r * Math.Cos(num3));
int num5 = (int)((double)r * Math.Sin(num3));
if (!this.checkBox1.Checked)
this.Refresh();
num3 += (double)num2 * num1;
}
this.Refresh();
}
//eseményeim
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
}
private void button1_Click(object sender, EventArgs e)
{
int x0 = 10;
int y0 = 10;
double alfa1 = 40;
double alfa2 = 10;
int r = 20;
Kör((Bitmap)pictureBox1.Image, x0,y0,r,alfa1,alfa2,szín);
}
}
}// -
-
eddie17
addikt
Megoldódott.
[ Szerkesztve ]
-
Zalanius
tag
Egy kis pozícionálási hiba van abban a kódban, így ebben a formában nem is fordulhat le. Ez a két sor van rossz helyen:
int x1 = int.Parse(textBox1.Text);
int y1 = int.Parse(textBox2.Text);Egyből az egy fordítási hiba, hogy nem adható két ilyen mezőnek kezdőérték másik mezőből. De ebben most nem is kell elmerülni, mert a célod a futás közben beírt értékek kiolvasása, tehát a két sor helye a button1_click metódusban van, még a Szakasz2 hívás előtt. A Parse metódusról tudni kell, hogy feltételezi az input megfelelő formátumát, tehát két töküres textbox esetén kivételre futsz vele. Szöveges tartalom esetén szintén. Hasznos olvasnivaló lehet ezért: Int32.TryParse.
--= Zalán =--
-
#hpq
aktív tag
válasz Zalanius #7978 üzenetére
Szia!
Köszi az előző hozzá szólást nagyon sokat segített.
A következő lenne a kérdésem, az előző feladatot kiegészítettem 2db textbox-szal ami a szakasz egyik koordinátáját olvassa be (ami az x1, y1).
Valamiért nem fut le és nem jövök rá, hogy mi a hiba.Előre is nagyon köszi a segítségedet!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
public Color szín = Color.Red;
int x2 = 100; int y2 = 100;
//függvényeim
int x1 = int.Parse(textBox1.Text);
int y1 = int.Parse(textBox2.Text);
public void Szakasz2(Bitmap bmp, int x1, int y1, int x2, int y2, Color szín)
{
int hx = x2 - x1;
int hy = y2 - y1;
int h = Math.Max(Math.Abs(hx), Math.Abs(hy));
if (h == 0)
{
bmp.SetPixel(x1, y1, szín);
}
else
{
double lx = 1.0 * hx / h;
double ly = 1.0 * hy / h;
double x = x1; double y = y1; bmp.SetPixel((int)x, (int)y, szín);
for (int k = 1; k <= h; ++k)
{
x += lx; y += ly; bmp.SetPixel((int)x, (int)y, szín);
}
}
Refresh();
}
//eseményeim
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Szakasz2((Bitmap)pictureBox1.Image, x1, y1, x2, y2, szín);
}
private void Form1_Load(object sender, EventArgs e)
{ pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height); }
}
}// -
-
don_peter
senior tag
válasz don_peter #7988 üzenetére
Közben elkészült a program és szerencsére jól működik..
A 16bit-es színképzés okozott némi fejtörést, de végül megadta magát..A kép bináris átalakítása is szépen megtörténik, szóval minden jól alakult.
A kérdés még fent állhat, hogy minek is kellett ez, hát ehhez:
DPTP System - Időjárás állomás beltéri----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
-
joysefke
veterán
válasz don_peter #7986 üzenetére
Ha Goose-T példájában a TryParse(...) sort erre cseréled, akkor nem int-ként hanem hexa-ként fogja értelmezni az input sztringeket...
if (int.TryParse(clean, NumberStyles.HexNumber, null, out var number))
Ha így csinálod, akkor kell még egy:
using System.Globalization;
[ Szerkesztve ]
-
Goose-T
veterán
válasz don_peter #7984 üzenetére
Egyszerű, akkor nem kell levenni előle a 0x-et, lehet úgy is parse-olni. Itt találsz egy példát, hogyan kell csinálni.
Eladó gitárok: https://tinyurl.com/yc7pawkr *** Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar
-
-
Goose-T
veterán
válasz don_peter #7980 üzenetére
string input = "0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0968, 0x0148, 0x0968, \n 0x0148, 0x0969, 0x0148, 0x0988, 0x0168, 0x0168, 0x0168, 0x0168, 0x0968, 0x0988";
var list = input.Split(',').Select(s =>
{
string clean = s.Trim().Replace("0x", String.Empty);
if (int.TryParse(clean, out var number))
{
return number;
}
return 0;
})
.ToList();Így lehet mindent egyszerre megcsinálni. Először splittelni kell, utána trimmelni (ez kiveszi a whitespace karaktereket), aztán kiszedni a 0x-eket, majd a végén meg kell próbálni int-ként parse-olni. Ha nem sikerül, akkor 0-t adunk vissza. Egyébként ha 0x van az elejükön, akkor ezek véletlenül nem hexadecimális számok akarnak lenni?
Eladó gitárok: https://tinyurl.com/yc7pawkr *** Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar
-
don_peter
senior tag
Srácok, küzdök egy kis problémával, de nem akar össze jönni. Valószínű nem jól csinálom és sajna régebben sem értettem pontosan, hogy működik a stringből való karakter kiszedés.
Azt hiszem split metódust kellene használnom, de a mintát nem tudom megadni. (persze lehet nem is jót nézek)A lényeg, hogy van egy nagyon hosszú string-em, pl.:
0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0968, 0x0148, 0x0968,
0x0148, 0x0969, 0x0148, 0x0988, 0x0168, 0x0168, 0x0168, 0x0168, 0x0968, 0x0988
Szeretnék minden sallangot kivenni a string láncból.
Vagy is nem kellenek a szóközök, nem kellenek a sortörések és a vesszőknél el kellene őket választani, vagy is tömbösítve elkülöníteni őket. Még nem tudom, hogy ebben a formában képes leszek e majd átalakítani int típussá őket, de ennyire nem akarok előre szaladni. (lehet a 0x-eket is el kell távolítani a stringből)Előre is köszi..
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
togvau
senior tag
Hello
Még mindig egy WPF gui-ban szeretnék egy progress bar szerűséget csinálni, és a GUI/xaml osztály egy másik osztály metódusát hívja meg, amin belül Parallel.ForEach-ben megy a lényeg, de ha onnan akarom frissíteni a GUI egyik komponensének értékét akkor persze
The calling thread cannot access this object because a different thread owns it.
Installer.MainWindow.thiswindow.downbutton.Dispatcher.Invoke(() =>Installer.MainWindow.thiswindow.downbutton.Content = "Downloaded " + counter + " of " + fileset.Count + " files");
Ez pedig ha bent van a foreachben belassítja az műveleteket, és ha kész van, nem lép ki a foreachből soha, mellesleg nem is változtatja a contentet.
Hogy lehet működőre megcsinálni?
Mellesleg hogy lehet a gazda GUI példányt lekérdezni? Mert a thiswindow változót a gui adja meg paraméterként az osztály létrehozásakor, ami gáz megoldás.
[ Szerkesztve ]
hitler, sztálin, micro usb
-
Zalanius
tag
Szia,
nagyjából látom, mit akarsz kihozni abból a kódból, de az Image property kasztolásakor szerintem gond lesz a referenciával (és/vagy a picturebox viselkedésének is utána kellene nézni a pontos magyarázathoz). Azonkívül ha a gombkattintásra akarod húzni a vonalat, akkor ne a pictureBox1_Click metódusba írd, hanem a button1_Click-be. Első körben:
Bitmap temp = (Bitmap)pictureBox1.Image;
Szakasz2(temp, x1, y1, x2, y2, szín);
pictureBox1.Image = temp;Nyilván lehetne még polírozni, de ebből látszik a lényeg. A Refresh(); hívás meg nem kell.
[ Szerkesztve ]
--= Zalán =--
-
Orionk
senior tag
válasz Peter Kiss #7974 üzenetére
Java-val foglalkoztam eddig és most áttérek melóhely váltás miatt C#-ra.
Ezt a könyvet, amit említettél a Nutshell-t hogyan lenne érdemes forgatni véleményetek szerint, hogy jól beépüljön minden az agyamba? Végigolvasni és közben kipróbálgatni, amiket ír benne? köszi
Kellemes karácsonyt mindannyitoknak!
-
joysefke
veterán
válasz Peter Kiss #7974 üzenetére
In a nutshell : 1089 oldal
-
joysefke
veterán
C# 7.0 in a Nutshell könyvet referenciaként forgatja valaki? Vélemény?
-
#hpq
aktív tag
Sziasztok!
C# vizsgára való készülés során (Visual Studio)-ban szeretnék kirajzoltatni egy meghatározott ponttól pontig egy szakaszt amikor lenyomom a button billentyűt.
Az lenne a kérdésem, hogy mi a hiba mert nem jelenik meg? (Vizsgán nem lehet használni a paint eventet, csak pontokkal lehet kirajzoltatni.)Előre is nagyon köszönöm a segítségeteket!
Forráskód:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
public Color szín = Color.Red;
int x1 = 10; int y1 = 10; int x2 = 100; int y2 = 100;//függvényeim
public void Szakasz2(Bitmap bmp, int x1, int y1, int x2, int y2, Color szín)
{int hx = x2 - x1;
int hy = y2 - y1;
int h = Math.Max(Math.Abs(hx), Math.Abs(hy));
if (h == 0)
{
bmp.SetPixel(x1, y1, szín);
}
else
{
double lx = 1.0 * hx / h;
double ly = 1.0 * hy / h;
double x = x1; double y = y1; bmp.SetPixel((int)x, (int)y, szín);
for (int k = 1; k <= h; ++k)
{
x += lx; y += ly; bmp.SetPixel((int)x, (int)y, szín);
}
}
Refresh();
}//eseményeim
public Form1()
{
InitializeComponent();
}private void pictureBox1_Click(object sender, EventArgs e)
{
//Console.WriteLine("x1:{0},y1:{1},x2:{2},y2:{3}", x1, y1, x2, y2);
Szakasz2((Bitmap)pictureBox1.Image,x1,y1,x2,y2,szín);
}private void button1_Click(object sender, EventArgs e)
{}
private void Form1_Load(object sender, EventArgs e)
{ pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height); }
}}
// -
-
nagyúr
ASP MVC
Van egy Partner View-om, ez a View meghív két Action-t, egy Filter-t és egy List-et, mindkettő visszaad egy PartialView-t. Szépen meg is jelenik, ezzel nincs gond.
Azt szeretném elérni, hogy a Filter (Partial)View-on összerakott modelt valamilyen úton módon átadjam a List View-nak.
Odáig megvagyok, hogy a Filter-en a Form felpostol egy PartnerFilterViewModel -t, ezen rajta vannak a szűréshez szükséges propertyk.
[HttpPost]
public ActionResult Filter(PartnerFilterViewModel model)
{
...
}Miként oldható ez meg?
[ Szerkesztve ]
-
Keem1
veterán
Maga az alkalmazás. Most a Load-ban vannak ezek a cuccok, de míg nem ért véget, a form meg se jelenik. Tudom, nem sok idő, nem másodpercekről van szó, de akkor is szeretném, ha előbb bejönne a form (userünk tudja, hogy él a program), majd a db dolgok, és végül hozzá lehet látni a munkához.
Sima WinForms applikáció. -
amargo
addikt
Maga az alkalmazás indul el vagy egy form?
Amúgy a splash screen lehet erre megfelelő, ha már így indul az alkalmazás, hogy kell a db.Ha pedig egy másik form-on kell, akkor alkalmazás indulása után egy másik szálon már mehet is initialization a db-re. Így látatlanban ezt a két tippet adnám.Ha wpf-akkor onActivated is ott van pl.
[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Keem1
veterán
Srácok, hová érdemes inicializáló dolgokat tenni? Olyan metódus kéne, aminél már a form betöltődött, de felhasználói interakció még nem kivitelezhető.
Ha letörlöm az adatbázis fájlt, akkor van, hogy 300-600 ms ideig is elszöszöl, míg létrehozza az adatbázist, az alap táblákat, meg az amúgy is szokásos alapbeállítások alkalmazódnak. A beállítások betöltése majd érint(het)i a form elemeit is (pl. listbox feltöltése).Egyébként egész megbarátkoztam az SQLite-tal
Alapvető különbségek vannak MySQL-hez, meg úgy általában a non-local adatbázisokhoz képest. Pl. a tranzakciókezelés jó barátom lett sok adat egyidejű módosításakor. Pl. amikor teszteltem, volt hogy 1000 db random string beírása külön-külön 7 másodpercet vett igénybe, tranzakcióval meg 2-300ms.Ha jól sikerülnek most a dolgok, akkor a saját későbbi munkámat könnyíthetem meg azzal, hogy kevesebb feladathoz hívnak személyesen oda.
-
Orionk
senior tag
Hello,
Evosoftnál látom, hogy van olyan pozíció megnevezés, hogy C# developer Sizer.
Mit jelent a Sizer?
köszi -
j0k3r!
senior tag
Szerintem neked egy Community 2017 jó lesz kezdésnek.
some men just wanna watch the world burn...
-
Orionk
senior tag
C#-ban Ti miben fejlesztetek? Visual Studio-ban? thx
-
martonx
veterán
Az megvan, hogy mi a különbség szerver oldal és kliens oldal között? Érted az egyik kód a szerveren fut, a másik a böngészőben
Azaz így direktben sehogy nem tudod megoldani, amit akarsz. Aztán persze miért ne küldhetnéd el a szervernek js-ből ajax-al azt, amit majd szeretnél, hogy a szerver belerendereljen a model propertybe.Én kérek elnézést!
-
nagyúr
ASP MVC
Milyen megoldással tudok Razor viewban a Model egy propertyjéhez értéket rendelni Javascriptből?
-
martonx
veterán
Jobbra váltani mindig könnyű, azaz Java -> C# váltás laza. Igaziból a C# -> Java váltás se fáj annyira, de a Java sokkal butább szintaktikailag (minél jobban benne voltál a C#-ban annál jobban fáj, hogy mennyire fapados a Java).
Ami tényleg fájni tud, az a tipikus menedzselt nyelvek (C# - Java)-ról váltás bármi másra, vagy bármi másról ezekre.Én kérek elnézést!
-
Peter Kiss
őstag
-
Keem1
veterán
válasz Froclee #7950 üzenetére
Stopwatch-csal mértem, igen, belevettem a Console.WriteLine() kiíratást is. Amúgy gyanúsan lassú volt előtte, SQL-ben ugyan nem vagyok istenkirály, de tán pár év PHP+MySQL után amatőrnek se számítok, így nagyon elgondolkodtam. Már jó, 40 millisec alatt van 10 és 350 elemű kiírással együtt is.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Állásajánlatok
Cég: Axon Labs Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest