A C# struct-ok szorosan kapcsolódnak a class-ekhez. Van állapotuk és viselkedésük. Rendelkeznek konstruktorokkal, amelyek argumentumokat várnak; a példányok hozzárendelhetők, egyenlőségre tesztelhetők és gyűjteményekben tárolhatók.
enum Unit
{
Kg,
Lb
}
struct Weight
{
private double count;
private Unit unit;
public Weight(double count, Unit unit)
{
this.count = count;
this.unit = unit;
}
public override string ToString()
{
return count.ToString() + unit.ToString();
}
}
new Weight(77.5, Unit.Kg).ToString();
// => "77.6Kg"
Az Isaacs Asteroid Exploration Co. területigénylési osztálya azzal bízott meg, hogy javítsd a birtokigénylési rendszerük teljesítményét.
Valahányszor egy új aszteroida kiaknázásra kész, a spekulánsokat arra kérik, hogy jelentsék be igényüket egy telekre. Az aszteroida területe négyoldalú telkekre van felosztva. A spekulánsok a méretek megadásával igénylik a területet.
A célod, hogy egy nagy teljesítményű rendszert fejlessz, amely kezeli a telekért folyó rohamot, ami korábban már a weboldal összeomlását okozta.
A mértékegység 100 méter, de ezeknél a feladatoknál figyelmen kívül hagyható.
Fejezd be a Plot struct megvalósítását, amely 4 Coord structból áll (amelyeket a konstruktorában fogad).
Valósítsd meg a ClaimsHandler.StakeClaim() metódust, hogy egy igény regisztrálható legyen.
Valósítsd meg a ClaimsHandler.IsClaimStaked() metódust annak meghatározására, hogy egy igényt bejelentettek-e.
var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.IsClaimStaked(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
// => true
Valósítsd meg a ClaimsHandler.IsLastClaim() metódust, amely összehasonlítja az aktuális igényt az előzővel.
var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.IsLastClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
// => true
Valósítsd meg a ClaimsHandler.GetClaimWithLongestSide() metódust, amely megvizsgálja az összes regisztrált igényt, és visszaadja a leghosszabb oldalú telket. Egy telek koordinátái garantáltan összefüggő téglalap alakot alkotnak.
var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.StakeClaim(new Plot(new Coord(10,1), new Coord(20,1), new Coord(10,2), new Coord(20,2)));
ch.GetClaimWithLongestSide();
// => new Plot(new Coord(1,1), new Coord(20,1), new Coord(1,2), new Coord(2,2))
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.