2024. május 26., vasárnap

Gyorskeresés

Hozzászólások

(#8551) joysefke válasza joysefke (#8550) üzenetére


joysefke
veterán
LOGOUT blog

Semmilyen jelölőkarakter nincsen az ilyen köztes sortörések előtt...

helyesbítek: annyi jelölés van, hogy sor közbeni sortörés csak aposztrófok között lehetséges.
Ez lesz a megoldás :) : https://github.com/22222/CsvTextFieldParser/blob/master/CsvTextFieldParser/CsvTextFieldParser.cs

[ Szerkesztve ]

(#8552) Peter Kiss válasza joysefke (#8551) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Nem tudom, mit szeretnél, de: https://www.nuget.org/packages/CsvHelper/9.2.3

(#8553) DrojDtroll válasza petyus_ (#8544) üzenetére


DrojDtroll
addikt

Ha Ctrl f5-tel inditom, akkor is eldobja magát. Elég furcsa, hogy simán indítva is azt írja ki hogy nem kezelt, amikor ott van rá a catch ág.

(#8554) dqdb válasza bandi0000 (#8538) üzenetére


dqdb
nagyúr

(a + bi)(c + di) = ac + adi + bci + bdi² = ac + (ad + bc)i + bdi²

Mivel i = √-1, ezért i² = -1, azaz

ac + (ad + bc)i + bdi² = ac + (ad + bc)i + bd × (-1) = (ac - bd) + (ad + bc)i

Vagyis:

(a + bi)*(c + di) = (ac - bd) + (ad + bc)i

Ha megnézed ennek a .NET Core-ban található implementációját, akkor ott pontosan ez szerepel:

public static Complex Multiply(Complex left, Complex right)
{
return left * right;
}

public static Complex operator *(Complex left, Complex right)
{
// Multiplication: (a + bi)(c + di) = (ac -bd) + (bc + ad)i
double result_realpart = (left.m_real * right.m_real) - (left.m_imaginary * right.m_imaginary);
double result_imaginarypart = (left.m_imaginary * right.m_real) + (left.m_real * right.m_imaginary);
return new Complex(result_realpart, result_imaginarypart);
}

Vagyis akárhogyan nézem, jól szoroz össze két komplex számot az ajánlott osztály (csúnya is lenne, ha nem).

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8555) bandi0000 válasza dqdb (#8554) üzenetére


bandi0000
nagyúr

hát akkor lehet én rontottam el, mert össze szoroztam 2 complex változó imagináris részét, de nem lett negatív, de mind1 is mert megírtam e nélkül, igaz nem lett olyan szép, de ez másodlagos most :D

Xbox One: bandymnc

(#8556) joysefke válasza Peter Kiss (#8552) üzenetére


joysefke
veterán
LOGOUT blog

Köszönöm, nagyon jó tipp volt!

(#8557) tototos


tototos
őstag

Sziasztok!

Van arra lehetőség, hogy emuláljak egy game controller HID device-t c# programból? A terv az lenne, hogy külső interfészen érkező adatok alapján vezéreljünk egy játékot. Eddig egy külső kis mikrovezérlő végezte ezt, de jó lenne ha nem lenne szükség külső eszközre, hanem "tisztán" szoftveresen megoldható lenne a dolog.

Köszönöm

(#8558) Peter Kiss válasza tototos (#8557) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Van.

(#8559) summers válasza Peter Kiss (#8558) üzenetére


summers
tag

Hm, nagyon segítőkész vagy.

(#8560) lali76


lali76
újonc

Sziasztok! Info zh-ra kellene egy kis segitseg C programozás van! Ezer köszönhet és hála érte❤️
Feladat:

matrix.dat fájlban 12 egész szám van (4 bájton ábrázolva) bináris módban.
Írjon programot, mely beolvassa a számokat a fájlból egy dinamikusan létrehozott két dimenziós tömbbe. Írja ki az elemeket a képernyőre 3x4 formában és végül írja ki a transzponált mátrixot egy transzponalt.txt nevű szöveges fájlba!

(#8561) bandi0000 válasza lali76 (#8560) üzenetére


bandi0000
nagyúr

Beolvasáshoz használhatod az fgetc, vagy freadet

Dinamikus tömböt nem értem, C ben nem annyira egyszerű megcsinálni, de arra is találsz példát

Kiíráshoz csak egy for kell, benne egy if, ha 3-al(2-vel) egyenlő az index, akkor egy sotörést teszel, és persze mindig növeled 3 al azt a változóz

Kiírás meg ugyan ez, csak fprintf et használsz

Xbox One: bandymnc

(#8562) harylmu válasza bandi0000 (#8561) üzenetére


harylmu
őstag

Rossz topik főnök :D De koncepcionalis szerintem ez is segiti a kollegat.

(#8563) bandi0000 válasza harylmu (#8562) üzenetére


bandi0000
nagyúr

Igen erre már rájöttem én is, de szerkeszteni nem tudtam, azért meg kár lett volna úk kommentet írni, de végülis így is ugyan az lett a vége :D

Xbox One: bandymnc

(#8564) lali76 válasza paramparya (#25) üzenetére


lali76
újonc

Most írom a zht srácok, 1 órám van rá. Letöltöttem a fájlt de ennyi tudok. Valaki tudna nekem írni egy prograot rá? Nagyon kéne, mert nem akarom hogy, államiról kirakjanak fizetősre :(

Feladat: Le kell töltenem egy fajlt. Az megvan. A fájlban 5 vektor van eltárolva bináris formában. Minden vektornak 3 koordinátája (x;y;z) van (intiger típusúak).
Írj programot ami kiszámolja a vektorok összegét.
Eredményt írja ki a képernyőre x;y;z formában.

(#8565) tboy93 válasza lali76 (#8564) üzenetére


tboy93
nagyúr

Ilyen hozzáállással jobb ha már most az elején offolod az egyetemet, meg az egész programozást.

(#8566) lali76 válasza tboy93 (#8565) üzenetére


lali76
újonc

nem programozónak tanulok, csak melléktárgy:)

(#8567) bandi0000 válasza lali76 (#8566) üzenetére


bandi0000
nagyúr

Okoskosni nem akarok, meg a többiwknwk van igaza, ên csak azt nem értem, hogy miért kell mindent az utcsó pillanatra hagyni? Nálunk a gépêszeknek is csak mellék tárgy ez, és kb ők is ZH elötti nap kaparja az ajtót, hogy kéne neki megoldás stb stb...

Ha korábban írsz esetleg megcsináltam volna,de nem tudom most

Xbox One: bandymnc

(#8568) tboy93


tboy93
nagyúr

Sziasztok!

Asp.net mvc alkalmazásban van egy saját filter komponensünk javscriptben. Ilyen összetett kereséseket lehet vele írni, nem is ez a lényeg. Cshtml-ben be van hardcode-olva a js-ben egy 'ÉS'. Ez nem 'ÉS'-ként renderelődik le, hanem 'ÉS'-ként, ezért a user nem tudja használni normálisan a filtert. Meta charset okés, cshtml file utf-8, mit nézzek még meg?

[ Szerkesztve ]

(#8569) tboy93 válasza tboy93 (#8568) üzenetére


tboy93
nagyúr

Kivittem resource fileba, probléma megoldva.

(#8570) joysefke


joysefke
veterán
LOGOUT blog

ASP .NET Core MVC 2

Iránymutatás kéne, elég kezdő vagyok ebben :B

Csinálok egy esküvőszervező appot. Ennek lesz egy User és egy Admin felülete. A User felületen lehet látni a bemutatkozást, elolvasni a részleteket, elfogadni a meghívást, visszajelezni stb. Az Admin felületen lehet konfigurálni a szövegmezőket (nevek, időpontok, helyszín, bemutatkozás stb..) képeket feltölteni az egyes szekciókhoz illetve a usereket konfigurálni, meghívókat elküldeni stb...

Adatbázis -SQLite- már van az applikációban, ez tárolja az IdentityUser entitásokat az elérhetőségekkel illetve hozzájuk a userek visszajelzéseit is. A backend logika már egész jól működik, ehhez akarok hozzákendácsolni valami értékelhető user interfészt. Ehhez értek a legkevésbé.

A User felülethez letöltöttem egy (free) single page reszponzív template-t HTML-CSS-JS+képekkel. Ennek a HTML részéből csináltam egy _UserLayout.cshtml-t. Azonosítottam azokat a szövegmezőket és képeket amelyeket az Admin által konfigurálhatóvá akarok tenni.

Ezek a konfigurálható textboxok/képek a Layout-on teljes mértékben szét vannak szórva, nincsenek lokalizálva, nem tudok egy szekciót kiemelni, hogy csak ott legyenek a konfigurálható elemek. Minimum 50-60db szövegelemmel és 20db képpel számolok. Szóval a végére akár a duplája is lehet.

A kérdés az, hogy mi a legértelmesebb módja annak, hogy a Layout/View-nak átadjam a megjelenítendő szövegelemeket, képeket? Minél kevesebb javascript-tel. Az admin felülettel nem lesz problémám.

Nekem ez jutott eszembe:
-(1)Írjam be a konfigurálható szövegelemeket az adatbázisba,
-(2)onnan kerüljenek az alkalmazás-szerver indításakor (vagy bármikor amikor konfigurációs változás történt) egy perzisztens read only in-memory Dictionary<string, string> objektumba ami dependecy injectionnal elérhető lesz a kontroller(ek)ből,
-(3) A kontroller(ek) pedig (egy közös helper methoddal) mielőtt meghívják a View-t bepakolják az adatokat a ViewBag-be?
-(4)A ViewBag-re alapozva lehetne a Layout/View-ban megjeleníteni a konfigurálható szövegelemeket.

_________

Azt hogy ezeket (a gyakorlatilag statikus) elemeket ViewModel-be rakjam és mindig cipeljem nem tűnik optimálisnak.

Mi a sztenderd megoldás? Gondolom ez nem valami egyedi dolog és van rá több jó megoldás...

Képeket adatbázisba rakjam, vagy csak a nevük/útvonaluk/rendeltetésük kerüljön az adatbázisba, maga a fájl pedig a fájlrendszerbe? Itt jelentkezne az a probléma, hogy a fájlrendszert és az AB-t szinkronban kellene tartanom. Van erre valami pattern?

Előre is köszönöm!
üdv
J.

[ Szerkesztve ]

(#8571) martonx válasza joysefke (#8570) üzenetére


martonx
veterán

1. ha nem értesz a frontend fejlesztéshez, akkor ne SPA-val kezdj :D hanem maradj a HTML-nél, és igyekezz minél több mindent html és mvc alapokon tartani. Ha hirtelen szépet is akarsz, akkor maximum húzz be egy bootstrap-et, bár esetedben még annak is erősen utána kellene olvasni, hogy az mit hogy, miért csinál.
2. MVC - megvan, hogy mit jelent az MVC? Akkor miért nem használod? Miért ViewBag-el akarsz bohóckodni? De ha ragaszkodsz a ViewBag-hez (ami egyébként Core alatt már amúgy se javasolt), akkor inkább ViewData. De leginkább könyörgök használj model-t a viewban, hiszen erről szól az MVC
3. A konkrét kérdéseidben olyan evidenciákat kérdezgetsz, amiket nem is kellene megkérdezni, hiszen bakker így működik az MVC.
4. Hogy szerinted mi az optimális, azt rohadtul nem ezen a szinten kellene feszegetni, hanem majd amikor megcsináltad, és fut a rendszer, és a terhelés függvényében úgy érződik, hogy lassú, és már mindent értesz, átlátsz, tudod mitől, hogyan működik az Asp.Net Core, és megírtad pár év alatt a már sokadik Asp.Net Core rendszeredet, majd akkor elkezdhetsz utána olvasni az optimalizációs lehetőségeknek.
5. Képek standard megoldása, hogy mennek a filerendszerbe, adatbázisba csak az elérési útjukat tároljuk.
+ bónusz: nincs olyan, hogy Asp.Net Core MVC 2 Régen volt Asp.Net MVC 1-5-ig, ezt váltotta az Asp.Net Core 1.0 - 2.2

bocs a keresetlen stílusomért, egyébként szívesen segítek :)

Én kérek elnézést!

(#8572) joysefke válasza martonx (#8571) üzenetére


joysefke
veterán
LOGOUT blog

Hi köszi a választ! Igen, számítottam rád :)

Nah szóval:
hanem maradj a HTML-nél, és igyekezz minél több mindent html és mvc alapokon tartani.

Az Admin oldalon ez már megvan és működik. Van egy _AdminLayout-om ami tartalmazza a linkeket (no meg némi bootstrap formázást) az egyes admin feladatokhoz, ezek a feladatok külön-külön View-ba vannak szervezve. Itt a kontrollerek és a View-k között az adatok ViewModel objektumokkal közlekednek, visszafelé ugyanígy Model-bindinggal.

Szerintem ez a része jó ahogy van. Nem túl esztétikus, de nem is kell az legyen.

A userek felé viszont illene valahogyan esztétikusan kinézzen a dolog. Ehhez töltöttem le egy template-t. Se nem tudnám, se nem akarnám megcsinálni a user oldal HTML+CSS+ izgő mozgó JS design-ját. Ennek egyébként is minimális köze van csak a feladathoz. Az admin tudjon usereket konfigurálni, meghívókat szétküldeni, a kapott visszajelzéseket aggregálva megjeleníteni.

A usernek annyi dolga van, hogy a user View-ban rábökjön, hogy jön-e vagy sem, hányan jönnek, kell-e szállás stb..

Tehát ezt a szép template-t szeretném a korábban általam elkészített management felülettel összeházasítani illetve a user felület néhány tartalmát az admin által konfigurálhatóvá tenni.

A kérdés kifejezetten erre irányult, mégpedig azért, mert eddig az admin felület View-jait adatokkal ellátó ViewModel objektumaim (user adatai, user visszajelzése) mind nagyon karcsúak és feladat specifikusak voltak, most pedig nem tudom, hogy ezeket a kvázi-statikus adatokat (user neveket-bemutatkozásokat, képeket stb kb egyszer kell az adminnak konfigurálnia) hogyan lenne érdemes elszállítani a kontrollertől a renderelt user View-ba.

Ezek mellett a kvázi-statikus adatok mellett még lesz sokkal fókuszáltabb user specifikus adat (pld. üdvözlő szöveg amikor a user az egyedi linken keresztül belép vagy egy visszajelzés arról, hogy már elfogadta-e a meghívást)

Nah szóval leírtam a problémámat, és nagyon szépen megkérlek, ha már vetted a fáradtságot és végigolvastad a dolgot, írtál vagy 30 sort, akkor 2-3 pontba összeszedve valami olyat is próbálj beleírni a válaszodba ami engem most előre visz...

Nagyon szépen köszönöm :)

[ Szerkesztve ]

(#8573) martonx válasza joysefke (#8572) üzenetére


martonx
veterán

:) megtisztelő :)

"A usernek annyi dolga van, hogy a user View-ban rábökjön, hogy jön-e vagy sem, hányan jönnek, kell-e szállás stb.." - gondolom ez egy html formban van. Remélhetőleg.

Kavarodás van a fejedben, hogy mi a statikus adat, és mi a dinamikus. Minden olyan adat, ami adatbázisból jön, az dinamikus adat. Statikus adat pl. egy img src-ben megadott kép valami 3rd party oldalon.

"hogyan lenne érdemes elszállítani a kontrollertől a renderelt user View-ba" - ModelViewController-ben mégis, hogy az istenbe lenne érdemes elszállítani, ha nem egy viewmodellben? De ezt már leírtam elég konkrétan az előbb is, légyszi ne kérdezgesd újra és újra ugyanazt.

Ennél jobban, a konkrétumok ismerete nélkül nem tudlak előre vinni. MVC-ben gondolkozz, leírtam mi dinamikus adat, és mi nem. Ennyi. Ha úgy érzed, ez sem elég, akkor keress meg nyugodtan privátban, ne ezt a topikot offoljuk szét :D

Én kérek elnézést!

(#8574) harylmu válasza joysefke (#8572) üzenetére


harylmu
őstag

Ahogy Márton írta MVC-t MVC-ként érdemes használni. Itt van példa app MS-től:

[link]

RazorPagesnek nézz utána.

[ Szerkesztve ]

(#8575) joysefke


joysefke
veterán
LOGOUT blog

.NET Core 2 MVC - model validálás, miért nem megy?

Sziasztok!

Szeretném a (működő) model validálást kiszervezni a kontrollerből egy külső osztályba. Létrehoztam egy : Attribute, IModelValidator interfészeket megvalósító validátor attributum-osztályt, a nevével dekoráltam az action method megfelelő paraméterét, mégis semmi nem utal arra, hogy valaha, bármilyen körülmények között eljutna a végrehajtás az én általam definiált IModelValidator.Validate() metódushoz. Sem a breakpoint sem a Validate függvényben levő exception nem aktiválódik. A file paraméter Validated bejegyzést rak a ModelState-be akkor is amikor nem kéne

Részletek:

[HttpPost]
public IActionResult EditPerson(Person model, int id, [ImageValidator]IFormFile file)

Itt a file-t kellene validálni.

Itt a validátor:
public class ImageValidatorAttribute : Attribute, IModelValidator
{
public bool IsRequired => true;

// Max size of image in KB
public int MaxSize { get; set; } = 1024;
// Allowed extensions
public string Extensions { get; set; } = ".jpg .jpeg";

public IEnumerable<ModelValidationResult> Validate(ModelValidationContext context)
{
throw new NotImplementedException();
IFormFile file = context.Model as IFormFile;
List<ModelValidationResult> result = new List<ModelValidationResult>();

if (file != null) {

.....
....
}
return result;
}
}

A kontrolleren beül így néz ki a file paraméter-kezelése:
if (ModelState.GetValidationState(nameof(file)) == Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Valid)
{....}

Ez mindig igaz...

Elmulasztottam valamit? Kell esetleg regisztrálni valahol a validátort?

[ Szerkesztve ]

(#8576) martonx válasza joysefke (#8575) üzenetére


martonx
veterán

Doksit olvastad? Mert ott nem így van a példa kód: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-2.2

Én kérek elnézést!

(#8577) joysefke válasza martonx (#8576) üzenetére


joysefke
veterán
LOGOUT blog

Ez is egy példakód volt...

Igen, a linkelt doksit olvastam, azóta megcsináltam ami benne van, továbbra sem működik.

ValidationAttribute-tal.

public class SizeAttribute : ValidationAttribute
{
private int size;
public SizeAttribute(int Size) => size = Size;

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{

IFormFile file = validationContext.ObjectInstance as IFormFile;
if (size * 1024 < file.Length) return new ValidationResult($"A maximum image size of only {size}KB is allowed");
else return ValidationResult.Success;
}
}

Itt az action method:
[HttpPost]
public IActionResult EditPerson(Person model, int id, [Size(1024)]IFormFile file)

Kell még valami? Kell esetleg valahol regisztrálni a SizeAttribute-osztályt?

[ Szerkesztve ]

(#8578) petyus_ válasza joysefke (#8577) üzenetére


petyus_
senior tag

AttributeUsage attribute van az attribute-odon? Ott tudod megadni, hogy mire teheted rá. Most hirtelen nem tudom, mi a default, ha nem rakod rá.

Pl:

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class RangeAttribute : ValidationAttribute
{
}

[ Szerkesztve ]

(#8579) joysefke válasza petyus_ (#8578) üzenetére


joysefke
veterán
LOGOUT blog

Nincsen, a doksi szerint azáltal, hogy nincsen rajta, nem is zártam ki, hogy érvényes legyen paraméterre:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/attributeusage

(#8580) martonx válasza joysefke (#8579) üzenetére


martonx
veterán

A Kontroller action methodod belseje, hogy néz ki? A doksiban komplett példakód is van githubon, azt vajon kipróbáltad??? [link]

[ Szerkesztve ]

Én kérek elnézést!

(#8581) joysefke válasza martonx (#8580) üzenetére


joysefke
veterán
LOGOUT blog

Nem, azt még nem próbáltam ki.

Alapvetően én ezt az IFormFile-t akarom validálni, maga a model objektumom (Person) nem túl kritikus, annak a propertijeit az osztálydeklarációban dekoráltam [Required]-del, az a része működik és nekem egyelőre elég is.

Dobtam a mai próbálkozásomat (elnapoltam) a kontrollert visszaállítottam a naiv, nem túl alapos kézi validálásra. Jelenleg így néz ki, csak annyi a célja az IFormFile validálásnak, hogy figyelmetlenségből ne lehessen rossz formátumot feltölteni. Tudom, hogy a fájl kiterjesztése semmit nem jelent.

A Person egy ViewModel objektum és tárolja egy személy adatait illetve a képének a relatív útvonalát a wwwroot-hoz képest. Összesen kb 6-10 Person objektum lesz, ezek in-memory tárolódnak (és minden változás mentődik a diszkre). Ők nem userek, hanem csupán koszorúslányok-fiúk, a képük-nevük pedig a Weblapon fog virítani. Az admin egyszer konfigurálja őket a content-manager oldalon utána ezek úgy maradnak.

A dolog nincsen túlságosan kitesztelve, de működik.

[HttpPost] public IActionResult EditPerson(Person model, int id, IFormFile file)
{
// Text based informations (Person object) and IFormFile gets validated separatelly
// The expectation is to execute EditPerson if the Person is valid, even if IFormFile is missing or invalid
// Exceptions can only be raised bc of file IO errors. This should not break the method
// we collect the exceptions to log details later into ModelState

IList<Exception> exceptions = new List<Exception>();

if (id < 0 || store.Data.People.Length <= id) ModelState.AddModelError("", "Error: route variable \"id\" has invalid value");
if (model?.Title != "Groomsmen" && model?.Title != "Bridesmaid") ModelState.AddModelError("", "Http post request contains invalid title: must be \"Bridesmaid\" or \"Groomsmen\"");


if (ModelState.IsValid)
{ // Person object is valid and updates the ContentStore no matter the IFormFile state
store.Data.People[id] = model;
store.Update(store.Data.People);
} // IFormFile gets manually validated

if (file != null)
{
string name = file.FileName;
string ext = Path.GetExtension(file.FileName.ToLower());
if (1024 * 1024 < file.Length) ModelState.AddModelError("", "Error: A maximum image size of 1MB allowed");
if (ext != ".jpeg" && ext != ".jpg") ModelState.AddModelError("", "Error: JPEG file expected extension must be either *.jpeg or *.jpg");

if (ModelState.IsValid)
{
// currently no renaming and no protection against malicious IFileForm-s as file upload is not available for public
string newFileName = file.FileName;

string newFileFullPath = Path.Combine(webRoot, imageFolder, newFileName);
while (System.IO.File.Exists(newFileFullPath))
{
//gets a nice, short random file name in case of a filename conflict
newFileName = (DateTime.Now.Ticks % 1000).ToString() + ext;
newFileFullPath = Path.Combine(webRoot, imageFolder, newFileName);
}
try
{
using (FileStream fs = System.IO.File.Create(newFileFullPath))
{
file.CopyTo(fs);
fs.Flush();
// file path gets saved in cshtml friendly relative path
store.Data.People[id].PictureSrc = "/" + imageFolder + "/" + newFileName;
}
}
catch (Exception ex) { exceptions.Add(ex); }

}
if (0 < exceptions.Count)
{
ModelState.AddModelError("", "Error: Could not upload image");
foreach (var ex in exceptions) ModelState.AddModelError("", ex.Message);
}
else store.Update(store.Data.People);
}

if (ModelState.IsValid) return RedirectToAction(nameof(Index));
else
{ ViewBag.id = id;
return View(model);
}
}

[ Szerkesztve ]

(#8582) martonx válasza joysefke (#8581) üzenetére


martonx
veterán

Illetve javaslom még a fluentvalidator nuget package-t kipróbálásra.

Én kérek elnézést!

(#8583) joysefke válasza martonx (#8582) üzenetére


joysefke
veterán
LOGOUT blog

köszi, ránézek!

(#8584) joysefke válasza martonx (#8582) üzenetére


joysefke
veterán
LOGOUT blog

Köszi ezt a FluentValidation tippet! Eddig elsőre nagyon jól működik, ráadásul megbízhatóan azt csinálja amit szeretnék!!

(#8585) I02S3F


I02S3F
őstag

Sziasztok!

Ez itt az első saját kútfőből származó programom (igen ez olyan egyszerű, mint egy vonalzó).

A 37. és a 47. sor között van egy "Kilép? Igen vagy nem" rész. Ezt megismétlem a 72. és a 82. sor között.

A C#-ból igen keveset tudok (mérnök infós levelezőn vagyok, elsős).

Kérdésem, hogy ezt nem lehet-e egy class-ba tenni, vagy valamibe, amivel ezt a szekvenciát szeretném megismételni? Nem is konkrét megoldást várok, hanem egy linket (olvasnivalót).

A másik kérdésem, hogy a következő két változó nevezés használata célszerű-e? KilepoKerdesreAValasz és KilepoKerdesreAValaszKetto, mert a neve nem beszédes, ránézésre nem tudni (csak a változónevet nézve), hogy
- mi a különbség,
- a KilepoKerdesreAValaszKetto mit csinál
:R

Közben olvasom azt is, hogy hogyan érdemes változót elnevezni. (Egy példát az iskolában is mutattak.)

(#8586) I02S3F válasza I02S3F (#8585) üzenetére


I02S3F
őstag

Közben az elnevezéseknek már utánaolvastam! :R

(#8587) I02S3F válasza I02S3F (#8586) üzenetére


I02S3F
őstag

A helyes "nevezéktan"-ból sokféle van. Érdemes a legfirssebbet nézni? :R

(#8588) bandi0000 válasza I02S3F (#8587) üzenetére


bandi0000
nagyúr

Szerintem tök8 , nincs egyenlő követelmény, minden cégnél más a szabvány, ami tuti, hogy szokj rá az angol elnevezésekre

Xbox One: bandymnc

(#8589) fatal` válasza I02S3F (#8585) üzenetére


fatal`
titán

Kérdésem, hogy ezt nem lehet-e egy class-ba tenni, vagy valamibe, amivel ezt a szekvenciát szeretném megismételni? Nem is konkrét megoldást várok, hanem egy linket (olvasnivalót).

Nem néztem a kódot, de szerintem tedd ki egy függvénybe / metódusba.

Methods

A másik kérdésem, hogy a következő két változó nevezés használata célszerű-e? KilepoKerdesreAValasz és KilepoKerdesreAValaszKetto, mert a neve nem beszédes, ránézésre nem tudni (csak a változónevet nézve), hogy
- mi a különbség,
- a KilepoKerdesreAValaszKetto mit csinál

Egy, kettő, három ... n semmiképpen sem ajánlott, csak ha egyértelmű, próbálj beszédesebb nevet adni nekik. És bár az iskolákban nem tanítják, de szerintem kerüld a magyar változónevek használatát.

Elnevezésekhez:
Naming Guidelines
C# Coding Standards

(#8590) martonx válasza I02S3F (#8585) üzenetére


martonx
veterán

Változó elnevezésekhez: semmiképpen se használj magyar változó neveket!

Én kérek elnézést!

(#8591) I02S3F válasza martonx (#8590) üzenetére


I02S3F
őstag

Ez a multik miatt lehet fontos. Plusz, ha segítséget kérek a Stackoverflow-n gondolom.

(#8592) fatal` válasza I02S3F (#8591) üzenetére


fatal`
titán

Nem csak a multiknál. Szerintem sehol sem használnak magyar változó neveket. Rengeteg szakszónak nincs is magyar megfelelője (vagy csak valami elborult hülyeség).

(#8593) martonx válasza I02S3F (#8591) üzenetére


martonx
veterán

Egész egyszerűen a programozás nyelve az angol. Ha valahol magyar változó elnevezéseket látok, az már önmagában elég beszédes, hogy milyen szintű kóddal állok szemben.

Én kérek elnézést!

(#8594) I02S3F válasza martonx (#8593) üzenetére


I02S3F
őstag

Értelek. Számomra ez még nem volt triviális, most olvasom az első programozás könyvemet. :R

(#8595) lord.lakli válasza martonx (#8593) üzenetére


lord.lakli
őstag

Kódot szerintem nem minősíti az elnevezés, maximum a cég konvencióját mutatja. Több olyan terület van, ahol azért az angol változókkal rendesen meg kell szenvedni, mert a fejlesztő nem ismeri az adott terület szaknyelvét, hiába tud angolul. Ráadásul más világnyelvek esetében sem mindig követik az angolt mindig.

[ Szerkesztve ]

(#8596) Peter Kiss válasza lord.lakli (#8595) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Pedig nem ártana, akar a halál olasz, spanyol vagy egyéb nyelven konstruált szerkezetekben turkálni. Eddig én némettel találkoztam, 9 évig tanultam, nem kellene... Vagy az is rendben lenne, ha mondjuk oroszul natív abcvel menne? :U

(#8597) lord.lakli válasza Peter Kiss (#8596) üzenetére


lord.lakli
őstag

Szerintem a cégtől és területtől függ, de a legtöbb helyen helyesen az angolt használják. Vannak olyan szakterületek, ahol nem csak az angol a hivatalos tudományos nyelv, így miért kellene az angolhoz ragaszkodni? Tuti van olyan, ahol az orosz natív abc a megfelelő :D

(#8598) dqdb válasza Peter Kiss (#8596) üzenetére


dqdb
nagyúr

Pedig nincsen szebb annál, amikor az SAP interfészen a mező neve egy rövidített német, egy rövidített angol és egy rövidített magyar szóból áll össze, és ezeket részeket az aláhúzás és kötőjel véletlenszerű kombinációja választja el :D

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8599) lord.lakli válasza dqdb (#8598) üzenetére


lord.lakli
őstag

:C

(#8600) I02S3F válasza dqdb (#8598) üzenetére


I02S3F
őstag

Annyi azért tudok kezdő létemre, hogy ez bad practice bad practice hátán:)

Copyright © 2000-2024 PROHARDVER Informatikai Kft.