- bambano: Bambanő háza tája
- Parci: Milyen mosógépet vegyek?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- vrob: Az IBM PC és a játékok a 80-as években
- Gurulunk, WAZE?!
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- vrob: 1991 - játék a PC-n
- gban: Ingyen kellene, de tegnapra
- Argos: Szeretem az ecetfát
Új hozzászólás Aktív témák
-
kingabo
őstag
Alakítsd át stringé a documentet (szerintem a ToString() meg is oldja) aztán az így kapott stringen hívd meg a Replace("<br>"," ")-t és kész is vagy. Ha utána a XDocumentként akarnád tovább kezelni, akkor a XDocument.Parse-al vissza tudod alakítani.
Nem szép, de kezdő szinten lehet ez a legegyszerűbb...Esetleg írj egy egyede StreamReader-t, ami a kiolvasás után végrehajtja az átalakítást és csak utána adja vissza a kiolvasott sort.
De lehet, ha a Linq2Xml-es részben nem Remove-ot hívsz, hanem inkább végig rombolsz az eredményen egy foreach-csel, akkor is megoldható a csere.
-
martonx
veterán
-
martonx
veterán
Rájuk esküszok. ingyenes hoszting
Annyira korrektek és jók,hogy néha komolyan elgondolkodok azon, hogy elő is fizessek, ne csak ingyenesen hosztingoltassak náluk. Én legutóbb már PHP-t is náluk hosztingoltam.
Itt jegyezném meg, hogy ilyenkor látszódik a windowson futó újabb IIS webszerverek ereje. Vices, de gyorsabban fut IIS7-8-on a PHP, mint Apache-on.
Én otthon is már úgy fejlesztek, hogy win7 + IIS-en fut minden. -
martonx
veterán
Igen a Telerik MVC kifutóban van.
Nuget.org - jellemzően amit a legtöbben letöltöttek, az a leghasznosabb is.
Ha Pro Visual Studio-d van, akkor itt is kötelező szétnézni:
http://visualstudiogallery.msdn.microsoft.com/Hogy Linux szervern hogy működnek együtt az a Mono-tól függ, ezt meg még sosem próbáltam. Már ingyenes hosting-ok is léteznek ASP.NET-hez, mondjuk az MVC4 még csak RC, ezért MVC 3-t tudsz ingyenesen hosztingoltatni. Mono honlapján nézz szét, hogy mit írnak az MVC 4 támogatásról (feltételezem legjabb mono-val mennie kellene).
Munkakeresésről annyit, hogy legutóbb, amikor kezdett bizonytalanná válni a helyzet, lubickoltam az állás lehetőségekben (mondjuk kb. mind budapesti volt). Persze ha Java, vagy PHP fejlesztő vagy, akkor nem fog előnyt jelenteni az ASP.Net ismerete
-
martonx
veterán
Az ASP.NET MVC alapból elég puritán kliens kimenetet eredményez. Cserébe az MVC-k közül (PHP-s, és Java-s MVC-ket) magasan a legyorsabb, és legkevesebb erőforrással beéri szerver szinten. Emellett NuGet-tel annyi és olyan komponenst lego-zol hozzá, ami neked tetszik. Ugyan épp kifutóban van, de próbáld ki a Telerik MVC bővítményt, vagy ennek az utódját a KendoUI-t (ez utóbbi sajnos csak részben ingyenes).
-
martonx
veterán
Az ASP.NET MVC maga egy olyan framework, mint a Zend vagy a Symphony. Mivel ezek is az MVC kódszervezési designt valósítják meg, csak PHP vonalon.
Ha elkezded összehasonlítani párhuzamosan használni, akkor elég gyorsan kijön azért a .Net ereje a PHP-s MVC framework-ökhöz képest.
A 4-es MVC már végképp brutális, igaz még csak RC. Mivel várhatóan július végén jön a végső stabil, én már a 4-est javaslom. -
martonx
veterán
Bármelyiket használhatod.
Egyszerűsége, illetve MVC-ben használhatósága miatt én a LINQtoEntites-t favorizálom.
Persze ha fontos a teljesítmény, akkor mindenre tárolt eljárást írok, és az EF-et, csak ezek meghívogatására, illetve a válaszok objektumosítására használom.
Napi 1000 felhasználó semmit nem jelent. A nagy kérdés mindig az, hogy ebből mennyi az egyidejű, konkurens felhasználó. -
-
Olyasmik menten keresgelj, hogy
- keresd meg a konkret Sort a kollekcioban (nev alapjan remelem menni fog)
- utana mar csak annyit kell tenned, hogy sorok[konkret_sor_objektum] = csokkentettertekTenyleg nem kene ennel tobb segitseg ebben a kerdesben, mert ha ezt nem tudod, akkor szerintem nem eri meg atmenned ebbol a targybol, tanuld meg.
-
icons
addikt
BMEn a JAVA 3. félév a C# 4.féléves tárgy. (pontosabban szoftlabor vagy mi keretében tanuljátok) Tehát elvileg nem kellene 2nyelvet tanulnod 1félévben
.
De C# és JAVA sokban hasonlít. A JAVA előnye, hogy platformfüggetlen a C#é pedig hogy használható és nem szutyokAkkor érdemes saját összehasonlító metódust írni, hogyha az alap nem felel meg neked. Pl hogyha italok vannak és te valamilyen 125ödrangú tulajdonság alapján akarod rendszerezni őket.
-
martonx
veterán
VB.Net személy szerint a kedvencem, de lássuk be, a programozás logikáját tekintve kb. mindegy hogy melyik objektum orientált nyelven programozol.
Egyébként ezért baromság hasonló nyelveket tanítani. Esetedben látszik, hogy a Java-ba egészen belejöttél, és mindent első körben a Java-nak megfelelően akarsz megoldani. Holott jó eséllyel C#-ban másképp kell megoldani. Ez nem a nyelv, ez az oktatás hibája.
És azért nem érzed ezt a nehézséget VB.Net-tel, mert a teljesen eltérő szintaktika miatt el sem kezdesz Java-san gondolkodni.
-
Szabesz
őstag
Attól függ ilyen valid -e megoldásként nálatok:
Szemely[] t = { new Szemely{Eletkor=19, Nev="Lajos"},
new Szemely{Eletkor=25, Nev="Monika"},
new Szemely{Eletkor=28, Nev="Peter"},
new Szemely{Eletkor=19, Nev="Gabor"},
new Szemely{Eletkor=25, Nev="Peter"},
new Szemely{Eletkor=18, Nev="Andrea"},
new Szemely{Eletkor=31, Nev="Peter"},
new Szemely{Eletkor=29, Nev="Gabor"},
};
t = t.OrderBy(p => p.Nev).ToArray(); -
Jester01
veterán
Mit érthet itt null referncián?
Mit nem lehet ezen érteni? A null az null. Normál esetben egy 3 elemű tömböt kell visszaadni (a legmagasabb alkoholtartamúkat), egyéb esetben pedig null-t.
Error 2 'Kocsma.Dolgozat.ItalComparer' does not implement interface member 'System.Collections.Generic.IComparer<Kocsma.Ital>.Compare(Kocsma.Ital, Kocsma.Ital)'
Ez is egyértelmű, konkrétan megmondta mi a baj. Mivel azt deklaráltad, hogy IComparer< Ital > ezért a megadott Compare függvény kell, nem pedig az amit te írtál.
Error 3 Use of unassigned local variable 'count'
Mivel nem nulláztad ki.
Igyál egy kávét vagy aludd ki magad ...
-
Lacces
őstag
Órán ezt vettük:
Bár már itt feltünt nekem, hogy a CompareTo() -t nem implementáltuk külön a Név adatmezőkre (Java-nál ezt megcsináltuk) de én magam sem implementáltam
Amúgy ennél van szebb megoldás? Mint, hogy így külön osztályt csinálok neki?
// Java Comparerto-nak a megfelelője
class SzemelyNevComparer : IComparer<Szemely>
{
public int Compare(Szemely x, Szemely y)
{
if (x == null || y == null)
{
throw new NotImplementedException("Na mizu Öcsém?");
}
return x.Nev.CompareTo(y.Nev);
}
}
class Program
{
static void Main(string[] args)
{
Szemely[] t = { new Szemely{Eletkor=19, Nev="Lajos"},
new Szemely{Eletkor=25, Nev="Monika"},
new Szemely{Eletkor=28, Nev="Peter"},
new Szemely{Eletkor=19, Nev="Gabor"},
new Szemely{Eletkor=25, Nev="Peter"},
new Szemely{Eletkor=18, Nev="Andrea"},
new Szemely{Eletkor=31, Nev="Peter"},
new Szemely{Eletkor=29, Nev="Gabor"},
};
Console.WriteLine("Comparer megvalósítás: Névszerint: ");
Array.Sort(t, new SzemelyNevComparer());
foreach (var item in t)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
} -
-
A neten van egy csomó C# RPN kalkulátor, azok jók példának. Ha nem is sokkal, de rövidebben is megoldható és kevesebb szívással.
A legszebb az, ha egy expression-t adsz át egy metódusnak, aztán az majd mond valamit. Azon belül meg már a switch-case és pár if megteszi. Nem rossz a megoldásod, mert biztosan működik, csak azt hittem, ilyen elvetemült tanáraid vannak.
"Semmilyen más paramétert nem kaphat a metódus, rekurzív megírás kizárva, egyéb osztályok, interfészek használata tilos. Ez a no comment kategória."
Ez az. A tanár kb. minden értelmes programozási és tanítási módszertannal szembe megy.
Mi az, hogy nincs osztály és interfész? Ez még az isten osztályok korában él?
A refaktorálás egy olyan eljárás, amivel a kódot utólag tesszük átláthatóbbá, rendszerezettebbé, szebbé. Például kiszervezzük osztályokba, interfészekbe, ami plusz függőséget jelent az adott helyen, szegregáljuk az interfészeket, egyszerűsítünk, általánosítunk, stb. Szép terület.
-
Lacces
őstag
kv.plusz(kv) esetén mi a hézag?
Lehet, hogy az előző hsz-szel ellent mondok magamnak, de itt ugye az történik, hogy
kv.plusz() van, és ezért mivel a kv az Valósként lett inicializálva, ezért egyből a Valós osztályban keresi hozzá a függvényt! De mivel a paraméterben lévő kv deklarált típusa Komplex, ezért a Valós plusz(Komplex k) metódust hívja meg!
Hoppá de jó vagyok
Vagyis akkor ezekből azt a következtetést vonhatom le, hogy a függvény hívásnál az számít, hogy milyen objektumként van inicializálva, kv = new Valos() ezért, mindig a Valos osztályban keresi hozzá a metódusokat.
És az, hogy melyik paraméterű függvényt hívja meg plusz(Valos v) vagy plusz(komplex k), az a paraméterben lévő kv objektum deklarált típusa dönti el, ami jelen esetben komplex.Jól elmagyaráztam magamnak?
De ha van valakinek könnyebb, egyszerűbb mondókája, szívesen várom, itt PH-n mindig jókat kaptam
-
Lacces
őstag
Már lejárt a szerkesztési időlimit... bool metódusra vonatkozó return true/false kérdés felejtős, elfogadta csak a true visszatérési értékre is
Amúgy a Console Ablaknál, hogyan lehet beállítani, hogy fent maradjon az ablak (ne tűnjön el) és ne egy Console.ReadLine()-al állítsam meg?
-
Lacces
őstag
Ehhez mit szólsz? (nekem tetszik :-D)
public bool AddFirst(int val){
Node current = new Node(val);
current.Next = Head;
Head = current;
Size++;
return (Head == current);}public bool AddLast(int val){
if (Head == null)
{
Head = new Node(val);
Size++;
return true;
}
else
{
Node current = Head;
while (current.Next != null)
{
current = current.Next;
}
current.Next = new Node(val);
Size++;
return true;
}
}Kérdés: Mikor és milyen esetben követeli meg a bool függvény, hogy a megadjam neki mindkettő visszatérési típust: return true, és return false, és mikor elégszik meg csak az egyikkel?
AddLast esetében megelégszik, hogy 2 db return true van, de AddFirst-nél nekem nagyon jött a fordító, hogy legyen egy return true és return false is. -
Jester01
veterán
A while ciklusos megoldásod rossz (persze ezt te is tudtad
)
Ugye csak egyetlen új linket kell hozzáadni, az utolsó elemnél. Ehhez képest te a ciklusmagban piszkálod a linkeket. Ez nem lehet jó.return után egyébként nem kell már az else, ezzel általában sokat lehet javítani az átláthatóságon.
A RemoveAll pedig ránézésre nem működik jól ha a lista elejéről több mint egy elem törlendő.
-
Gülredy
tag
Na és a TryParse-t hogy használjam jelen esetbe mert ha csak átírom a Parse-t TryParse-re akkor azt mondja hogy:
No overload for method 'TryParse' takes 1 arguments
Tehát kell neki egy argumentum de ha beírom a zárójelbe az x-et akkor sem jó neki. PL így:
x = int.TryParse(Console.ReadLine(x));Még nem használtam ezt a tryparse-t és a könyv amiből tanulok ott is csak enum típusoknál használják!
-
x007
tag
Nem, az equals is referencia egyezést vizsgál alapértelmezettként, ha ezt logikai egyezésre akarod módosítani, akkor írd felül.
Igen a példa jó:
public bool Equals(Person other)
{
if (other == null)
return false;
if (this.uniqueSsn == other.SSN)
return true;
else
return false;
}
public override bool Equals(Object obj)
{
if (obj == null)
return base.Equals(obj);
Person personObj = obj as Person;
if (personObj == null)
return false;
else
return Equals(personObj);
}Itt az történik, hogy a Equals(object) metódus megnézi, hogy Person típusú objektumot kapott-e, ha igen továbbdobja az Equals(Person) metódusnak, ami a logikai egyezést vizsgálja.
-
x007
tag
Referencia típusoknál az equality operator azt vizsgálja, hogy a két referencia ugyanarra az objektumra mutat-e, de ezt operator overloading-gal megmásíthatod. Referencia típusoknál ez nem javasolt. Inkább írd felül az Equals metódust, vagy még jobb, ha az IEquatable generikus interfészt implementálod (ebben az esetben is írd felül az Equals metódust). Ha nem rendelkezel az osztály felett, javasolt egy összehasonlító osztály létrehozása az IEqualityComparer generikus interfész implementálásával.
-
Lortech
addikt
A Negyzet osztályod "a" mezője elvileg value type, így az override-olt equals metódusban a return this.a == tmp.a; sor miatt a két négyzet példány equals-szal összehasonlításával azt vizsgálod, hogy a két példány megfelelő "a" mezője "==" -e, és 2.0 egyenlő 2.0-vel (feltételezve, hogy Negyzet konstruktorában "a"-nak értékül adod a paramétert).
-
martonx
veterán
???
Osztály: autó
Objektum: pl. Renault Thália 1.5 dízel, kék színű azaz az osztály megfelelően létrehozva beparaméterezve
És igen ez a Reanult Thália tulajdonképpen egy változó, mert átfestheted pirosra, rakhatsz rá másmilyen gumikat stb...Azaz:
Auto Thalia = new Auto();
Majd:
Thalia.kerek = Michelin;
Thalia.szin = kek;
és így továbbA többi kérdésedet végképp nem értem, mikor alájuk vannak írva a válaszok.
-
szívesen, nem kötekedni akartam, csak ezek a tömbös feladatok mindig felhúznak, mert elrugaszkodottak. Hiába tudsz tömböt kezelni, a valós életben ritkán jön elő, ha nem speckó területre megy az ember.
A példában meg leég 3 elem, összeadod, és nullázol, hogy jöhessen a köv. 3 szám, de persze kollekciókkal már mindjárt más.
-
ArchElf
addikt
A List, csak csinál egy listát a három elemű tömbből (és a tömböt utána el is dobja, úgy ahogy van). Alapból a lista nem korlátos gyűjetmény (Collection), így bármennyi elem hozzáadható, ha a méretét nem korlátozzuk le fixre.
Parse azért rosszabb, mint a TryParse, mert ha nem tud konvertálni (pl szám helyett szöveget adtál be), akkor dob egy FormatException-t, és azt le kell kezelni, hogy ne szálljon el a program.
AE
-
ArchElf
addikt
Három megoldás, ami nem korlátoz... Ja és Parse helyett TryParse-t érdemes használni...
static void Tömb1()
{
int[] tomb = new int[] { 0, 0, 0 };
do
{
int temp;
if (!int.TryParse(Console.ReadLine(), out temp))
temp = 0;
tomb[2] = tomb[1];
tomb[1] = tomb[0];
tomb[0] = temp;
} while (tomb[0] + tomb[1] + tomb[2] != 8);
Console.WriteLine(" Az utolsó 3 elem összege 8 ");
}
static void Tömb2()
{
List<int> tomb = new List<int>(new int[] { 0, 0, 0 });
int sum;
do
{
int temp;
if (!int.TryParse(Console.ReadLine(), out temp))
temp = 0;
tomb.Add(temp);
tomb.RemoveAt(0);
sum = 0;
foreach (int val in tomb)
sum += val;
} while (sum != 8);
Console.WriteLine(" Az utolsó 3 elem összege 8 ");
}
static void TömbLinq()
{
List<int> tomb = new List<int>(new int[] { 0, 0, 0 });
do
{
int temp;
if (!int.TryParse(Console.ReadLine(), out temp))
temp = 0;
tomb.Add(temp);
tomb.RemoveAt(0);
} while (tomb.Sum() != 8);
Console.WriteLine(" Az utolsó 3 elem összege 8 ");
}AE
-
Jester01
veterán
Ez nem az a tömbös megoldás amire én céloztam. Az helyes volt az eredeti programban, hogy csak annyi adatot tárolt el amennyi a feladathoz kellett. Ettől az még végtelen sorra működött ellentétben a tieddel. Én csak arra utaltam, hogy a szam1,2,3 változók helyett kellene a tömb, ezáltal a program általánosabb és szebb lenne.
-
Dehogy van harag.
Miért lenne. azt viszont nem tudtam, hogy ez sulihoz kell. Azt hittem, otthon, magadtól akarsz c#-ozni. Ha suli, akkor más. Ott sajnos kötelező ezekkel vackolni.
martonx:
Sajnos ezen az életpálya modell és egyebek sem segítenek. Szemléletet kellene váltani - csak ezt nehéz, már csak a szabályozások miatt is. -
Nem bántás, de miért ilyen hülyeségekkel foglalkozol, mint ez és a buborék? Nem kioktatásnak szánom, csak leírok pár dolgot tanácsként. Miért nem életszagú példákkal dolgozol? Írj mondjuk valamilyen katalógust magadnak. Abban minden megvan, ami kellhet az alapokhoz (adatbázis, felület, backend). Kérdés, hogy mi a célod?
Másik tanácsom: dobj ki minden eddigi könyvet és linket (ahonnan ez van, onnan több példát ne vegyél, mert szerintem elavult) - és főleg C tudást, mert itt csak tömbökkel operálsz, pedig ezer éve vannak kollekciók és mindenhol azt használják már, hacsak nem valami hardver közeli dolgot (driver-t) vagy ilyesmit akarsz írni. Olvasgass az elnevezésekről és használd a ReSharper nevű igen hasznos progit a Visual Studio-ban.
A lelkesedés hasznos, de ne pazarold olyanokra, hogy milyen típusú egy tömb indexe - ez azért a nevéből is adódik. Kész, lépj tovább. Ha valaminek a valódi, lefordított kódja érdekel, akkor használj Reflectort. Garantáltan meglepődsz majd.
-
Jester01
veterán
-
Jester01
veterán
Azért nem kell mert a CompareTo az az Int32 saját publikus metódusa. Mellesleg ez valóban implementálja az IComparable.CompareTo-t, de ugye te nem azon keresztül hívod. Még ha azon keresztül hívnád is, a fordító is tudja, hogy az int az IComparable. Lásd msdn
A sima összehasonlítás nyilván egyszerűbb. A CompareTo például akkor jó, ha egyszerre akarod eldönteni a kisebb-egyenlő-nagyobb kérdést.
MOD: ja "És azért nem kell az IComparable interfészt implementálni mert a static void main() és static void bubble-el dolgozom?"
Nem. Annak az osztálynak kell implementálnia amin hívni akarod. Jelen esetben ez az int lenne, ami implementálja is. De mint fentebb említettem, te egyáltalán nem használod az IComparable-t. -
Jester01
veterán
Igen, az indexek int típusúak.
Valahol láttam, hogy a List-nek az index értéke 0-32767-ig terjed
Nem tudom hol láttad, nem így van.Egy array-nek mennyi a maximális értéke? Olyat találtam, hogy 32bites rensdzeren max 2GB körül van
Két korlát van: az indexeknek bele kell férni az int-be illetve az egész cuccnak a virtuális címtartományba. Az előbbi azt jelenti, dimenziónként maximum 2^31-1 elem lehet, utóbbi függ az operációs rendszertől és persze attól, hogy mekkora elemek vannak a tömbben.
Az int objects-ért meg jól fejbevágnám aki írta. Ha egy int-et "bedobozolsz" (boxing) akkor lesz int object, addig meg csak int.
-
Jester01
veterán
1. Igen, a string elemei char típusúak. Lásd msdn.
2. Ránézésre nem lehet eldönteni melyik a gyorsabb, de megmérni persze meg lehet. Csinálj egy ciklust ami adott darabszámig vagy ideig fut, és számold ki. Ha csak egyetlen mezei ascii karaktert akarsz konvertálni (magyarul 0-9) akkor a leggyorsabb garantáltan az egyszerű kivonás lesz (c - '0')
3. A Convert.ToInt32-nek van pár overload-ja, a különböző típusokhoz, így char-hoz is. Vigyázat, ez nem számként konvertál, hanem karakterkódként! Tehát nem ekvivalens a kettő. Ha a számot akarod, akkor itt is kell a ToString(). Lásd illusztráció.
-
Jhonny06
veterán
1., A string egy karakterlánc, képzeld el úgy, mint egy tömböt, aminek nem egész (int) a típusa, hanem karakter (char). Egy string elemét is el tudod érni úgy, mintha karaktertömb lenne, azaz:
string nev = "Marci";
esetén: a nev 0. eleme (azaz az első elem) egy M betű lesz.
A többit szerintem fölösleges kitárgyalni. Nem tudom, hogy mit akarsz ezzel a kóddal, de egy string hosszát így tudod meghatározni (a String osztály minden objektuma el tud érni bizonyos tagfüggvényeket, a Length a hosszát adja vissza, angolból ismerős lehet), például:
String isbn = Console.ReadLine();
Console.WriteLine(isbn.Length); -
Jester01
veterán
Igen, az int az értéktípus, az int[] pedig referencia típus. Az int[] elemei ettől függetlenül nem int típusú objektumok, szerintem ott valamit félreértettél.
Érték típus átadásakor másolat készül az értékről, ahogy azt fentebb a kollega is írta. Referencia típusnál csak a referenciából készül másolat, nem magáról az objektumról. Tehát a függvényedben y ugyanarra a tömb objektumra referencia, ezért a benne lévő elemeket tudod módosítani akkor is, ha azok már érték típusok. Továbbá csinálhatsz egy új tömböt is, pl.: y = new int[1];. Ezáltal az y már erre az új tömbre fog hivatkozni. Viszont mivel magából a referenciából másolatod van, ez semmilyen módon nem befolyásolja a Main-ben lévő tömböt.
Használhatod még a ref kulcsszót paraméterek átadásához, ekkor semmilyen másolat nem készül. Mind az x mind az y értékének változása egyből kihat a Main-re is.
-
Jhonny06
veterán
Pl.:
static int m(int x, int[] y)
{
x = 3;
y[0] = 3;
return x; //!!!!!!!!!!
}
static void Main(string[] args)
{
int number = 0;
int[] numbers = new int[1];
System.Console.WriteLine("number is " + m(number, numbers) + " and numbers[0] is " + numbers[0]);
Console.ReadLine();
} -
Jhonny06
veterán
Nem állítottál be visszatérési értéket a függvényednek, azaz void. Érték szerinti paraméterátadásnál csak egy másolat készül a változóról, amit a függvénybeli értéke fel is vesz, de visszatérésnél a main() függvényben az eredetit írod ki, ami nem kapta meg. A tömböt dinamikusan foglaltad le, a függvényben egyből a memóriába írod, így az jó. A number változódat ne érték szerint add át, hanem mutatóval. Vagy legyen a függvényednek visszatérési értéke és akkor az x-el térj vissza.
-
Jester01
veterán
Így van.
1. x > y > 0 => (x > y) > 0 és boolean-t nem lehet számmal hasonlítani.
2. x = y && y az && logikai operátor, nem lehet int-re alkalmazni (a bitenkénti operátor az &)
3. x /= y ez ugye helyes
4. és 5. or illetve and nem c# operátor, helyesen | és &
6. (x != 0) || (x = 0) az (x = 0) típusa int, amit nem lehet || logikai operátorhoz kapcsolni. -
kispx
addikt
Console osztály tipikusan ilyen, elég egy belőle, nem kell példányosítani. Nincs értelme és elég fura lenne, ha egyszerre két példány lenne belőle.
Az abstract osztály arra való, hogy közös felületet biztosítsunk a leszármazottainak.. Azaz itt egyetlen egy darab példányt sem akarunk létrehozni.
-
-
A statikus osztályt nem kell létrehozni, elég csak hivatkozni rá, mert egy példányban létezik.
egyébként egy osztály egy példányban való létezése például hasznos, ha mondjuk egy konfig állományt olvasol be és dolgozol fel. Ilyenkor csak egyszer teszed meg és kizárhatod, hogy újra létrejöjjön. Tipikusan az erőforrás kezelő logikát szokták ilyen osztályokban tárolni.
-
1. Nem tudom, mit szeretnél pontosan, de ha csak 1 példányt akarsz, akkor erre van egy design pattern, a neve: Singleton
Amúgy igen, abstract, static vagy sealed (mondjuk ez csak származtatásra érvényes) és nem lehet példányosítani.
A példány instance angolul.
3. Nagyjából jó, talán kicsit túlbonyolítottad, azért nem fogadták el. Az érték szerinti átadásnál magát az értéket adod át, mindegy, hogy az hol van tárolva. Ha hivatkozol rá, magára az értékre hivatkozol, míg referenciánál egy már lefoglalt memóriaterületre (ref esetén az érték szerinti is átadható így) - de nem adod át a címet.
Ebben az esetben egy új példányt kell létrehoznod, ha használni akarod, erre való a new szó. Ilyenkor bármelyik példány módosít, mindenki a módosítottat látja majd.
-
fatal`
titán
Nem értem a problémát, ilyesmit érdemes a konstruktorokban átadni, de ha úgy szeretnéd ahogy írtad, az is működik.
public class Pont
{
private int x;
private int y;
public Pont(int x, int y)
{
this.x = x;
this.y = y;
}
}Gondolom ilyesmi lenne a pont osztály, bár a gyári System névtérben ott a Point osztály. Ezután meg:
public class Teglalap
{
private Pont sarok;
public Teglalap(Pont sarok)
{
this.sarok = sarok;
}
}Átadhatsz a téglalapnak két számot is akkor sarok = new Pont(x,y).
Meg kellenek még a publikus változók ha le akarsz kérdezni valamit, ezeket nem írtam meg.
Hibák lehetnek, a kódot itt helyben írtam.
Ha másra gondoltál, akkor félreértettem.
Szerk.: Hopp, megelőztek egy sokkal részletesebb kóddal.
-
bpx
őstag
nem egészen tiszta, hogy mi lenne a kérdés, hiszen abban a 2 sorban már benne van a válasz is
simán felveszed olyan típusú tagváltozónak, és az egy referencia lesz egy másik objektumrade pl:
class Pont
{
int X, Y;
public Pont(int x, int y) { X = x; Y = y; }
}
class Teglalap
{
Pont balfelso, jobbalso;
public Teglalap(int x1, int y1, int x2, int y2)
{
balfelso = new Pont(x1, y1);
jobbalso = new Pont(x2, y2);
}
public Teglalap(Pont bf, Pont ja) { balfelso = bf; jobbalso = ja; }
}
Teglalap doboz = new Teglalap(0, 0, 10, 15);
Pont p1 = new Pont(0, 0);
Pont p2 = new Pont(10, 15);
Teglalap doboz2 = new Teglalap(p1, p2); -
amargo
addikt
Esetleg a származtatásra gondolsz?
A c# jegyzetben is utána nézhetsz, de számtalan másik könyvet is lehet linkelni, ha jobban megismerem mit szeretnél.
Ú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!
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen légkondit a lakásba?
- bambano: Bambanő háza tája
- World of Warships
- Windows 11
- Azonnali fotós kérdések órája
- Melyik tápegységet vegyem?
- Miért vezet mindenki úgy, mint egy állat?
- Milyen egeret válasszak?
- Parci: Milyen mosógépet vegyek?
- További aktív témák...
- AMD Ryzen 7 7700X - Új, 1 év garancia - Eladó!
- Apple Watch ultra 2 49mm Natur Titanium, Új, 1 év Apple garanciával
- Gamer PC - R5 5600, RTX 3060 és 16gb RAM + GARANCIA
- HP Zbook 14 laptop (14FHD/I7-G5/8GB/128SSD/MagyarVilágítós)
- Jó áron ÁRON ELADÓ! Üzleti HP Elitebook 1040 G9 Laptop! / i5-1245U 16GB 256GB
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD I HDMI I W10 I CAM I Garancia!
- 130+131+132+133 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
- 120 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 (48 hónap garancia!)
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
- BESZÁMÍTÁS! ASRock B550M R5 5600 16GB DDR4 512GB SSD RX 6600 XT 8GB Kolink Observatory LM RGB 600W
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged