-
Notifications
You must be signed in to change notification settings - Fork 16
Konzolos alakzat rajzoló program #4
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nem gyártottam volna ennyi faja Exception osztályt. Nem ad sokat a funkcióhoz, 1-2 saját exception fajtával bőven le lehetett volna fedni a problémakört. IndexOutofRange exceptiont kézzel meg nem kellene gyártani. A Type discriminator JSON esetén ügyes megoldás.
} | ||
else | ||
{ | ||
throw new IndexOutOfRangeException("Index is out of range"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ez egy kicsit redundásns. Ha nem létező indexre hivatkozol, akkor a runtime gyárt belőle IndexOutOfRangeException osztályt és kézzel ilyent nem is lenne szabad gyártani. 🙄
} | ||
else | ||
{ | ||
throw new IndexOutOfRangeException("Index is out of range"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Szintén ugyan az.
@@ -0,0 +1,7 @@ | |||
namespace E394KZ.Exceptions | |||
{ | |||
class CoordinateOutOfCanvas : Exception |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exception osztályból származáskor nem csak ezt a konstruktort kellene definiálni, hanem az összes többit is illene.
@@ -0,0 +1,8 @@ | |||
namespace E394KZ.Exceptions | |||
{ | |||
class InvalidArgumentumCountException : ShapeException |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exception osztályoknál ajánlás, hogy az Exception legyen publikus, de minimum kiírnám explicit az elérés módosítóját.
@@ -0,0 +1,11 @@ | |||
namespace E394KZ.Exceptions | |||
{ | |||
abstract class ShapeException : Exception |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Absztrakt osztály egy öröklési hierarcia első eleme ideálisan. Az Exception nem absztrakt, így egy ebből származó osztály absztraktá tételére egy C# programozó se fog számítani. Ez valahol szerintem a Liskov suitability principle-t sérti.
|
||
namespace E394KZ.Shapes | ||
{ | ||
[JsonDerivedType(typeof(Dot), typeDiscriminator: "dot")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Type discriminator ++ 😎
{ | ||
if (index < 0 || index >= shapeHistory.Count) | ||
{ | ||
throw new IndexOutOfRangeException(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minden egyes kézzel dobott IndexOutOfRangeException miatt valahol meghal egy cuki kiscica. 🐱☠ - ne legyünk gonoszak és szívtelenek.
{ | ||
internal record Line : BaseShape | ||
{ | ||
public uint EndX { get; init; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A pontok kezelésére lehetett volna egy Point osztály vagy struktúra pl
} | ||
private static bool ContainsInvalidCharacter(string text) | ||
{ | ||
string validCharsPattern = @"^[a-zA-Z0-9_.-]+$"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice hogy az eleje és vége is definiálva van, de még egy MatchTimeout-al kiegészíteném a matchelést biztonsági okokból.
No description provided.