Mi a véleményetek a következő C# kódrészletről?

Címkék
Mi a véleményetek a következő C# kódrészletről?
2010-07-18T21:55:39+02:00
2010-07-19T08:30:52+02:00
2022-06-29T08:20:30+02:00
  • Jah azt benéztem... Viszont akkor a BloodAlcoholLevel változásakor hívódjon meg a függvény, hogy konzisztens maradjon az objektumod.
    Mutasd a teljes hozzászólást!
  • TomX azt én is próbáltam de nem jó

    bool successfulled = (bool)SeccessRand.Next(2); //így sem

    a konverzió hosszúsága pedig jolval meghaladja a Pitta_ által javasolt változatot.
    Mutasd a teljes hozzászólást!
  • Miért nem egyszerűen csak:

    bool successfuled = SuccessRand.Next(2);
    Mutasd a teljes hozzászólást!
  • Pitta_ átraktam a SetMyValues() tagfgv-t a MyPersonsba, de nm értem, hogy mire kell a double típusú paraméter? oO
    Mutasd a teljes hozzászólást!
  • @Pitta_: nem is tudom hogy miért maradt bent.
    @Deimos: szerintem ez a nagyon kezdőségemkor ragadt rám, hogy kiírjam: =true : P megpróbálom levetközni :)
    Mutasd a teljes hozzászólást!
  • Az egész SetMyStates függvényt én átraknám a MyPerson osztályba, és kapna egy double paramétert, ugyanis amúgy csak a MyPerson tulajdonságait állítgatja, ezért ott van a helye.
    Mutasd a teljes hozzászólást!
  • Valahogy az én szememnek mindig is furcsák voltak az olyan kódok amiben pl. az if-ben egy bool típusú valamit hasonlítanak össze true-val vagy false-szal. Itt pl a
    if (Me.IsAlive == true)

    Szerintem olvashatóbb ha csak simán
    if (Me.IsAlive)
    van helyette.

    Szerk.:
    Pitta_ megelőztél. Pont ilyenekről beszélek én is...
    Mutasd a teljes hozzászólást!
  • Ez itt mi?
    bool successfuled = SuccessRand.Next(2) == 1 ? true : false;
    Miért nem egyszerűen
    bool successfuled = SuccessRand.Next(2) == 1;
    ?...
    Mutasd a teljes hozzászólást!
  • Igen.
    public int NumberOfMyFriends { get { return _friendListLength; } }
    helyett meg:
    public int NumberOfMyFriends { get; private set; }
    Mutasd a teljes hozzászólást!
  • Köszi, utána is néztem az auto propertyknek. Erre gondolsz ugye?:

    public bool IsAlive { get; set; } public DrunkState MyDrunkState { get; set; } ...

    Banderasz: arra gondolok, h mit lehet javítani, mi az amit jol csináltam és hasznájjam, csak kell egy kis pozitív ill. negatív, építő jellegű kritika.
    Mutasd a teljes hozzászólást!
  • Például használj autopropery-ket. Tovább még nem olvastam.
    Mutasd a teljes hozzászólást!
  • "Mi a véleményetek a következő C# kódrészletről?"

    Szép hosszú...

    Mégis mit szeretnél hallani? Mire vagy konkrétan kíváncsi?
    Mutasd a teljes hozzászólást!
  • Mi a véleményetek a következő C# kódrészletről?

    //using Summer.Party; //using Summer.Relationships; using System; namespace Summer { class MyPerson { public enum DrunkState{ Sober, Happy, RedFace, SeesDimly, CanNotStand, Sleeps, DontRespont }; bool _isAlive; DrunkState _myDrunkState; double _bloodAlcoholLevel; readonly int _friendListLength; public bool IsAlive { get { return _isAlive; } set { _isAlive = value; } } public DrunkState MyDrunkState { get { return _myDrunkState; } set { _myDrunkState = value; } } public double BloodAlcoholLevel { get { return _bloodAlcoholLevel; } set { _bloodAlcoholLevel = value; } } public int NumberOfMyFriends { get { return _friendListLength; } } public MyPerson() { IsAlive = true; MyDrunkState = DrunkState.Sober; BloodAlcoholLevel = 0.0f; _friendListLength = 100; } } class Program { private enum CallFriendsType { UsingPhone, Personally, UsingInternet, PostalMail }; private static MyPerson Me = new MyPerson(); private readonly static Random SuccessRand = new Random(); static void Main(string[] args) { CallFriends(CallFriendsType.UsingPhone); while (Me.IsAlive == true) DoParty(); //Lényeg Console.ReadKey(); } private static void CallFriends(CallFriendsType type) { int Accepted = (new Random()).Next(0, Me.NumberOfMyFriends); Console.WriteLine("You called {0} friends, {1} accepted the invitation.\n", Me.NumberOfMyFriends.ToString(), Accepted.ToString()); } private static void DoParty() { double increaseBloodAlcoholLevel = ((new Random()).NextDouble())*10; bool successfuled = SuccessRand.Next(2) == 1 ? true : false; Me.BloodAlcoholLevel = Me.BloodAlcoholLevel + increaseBloodAlcoholLevel; SetMyStates(); string msg = ""; if (Me.IsAlive == true) { if (successfuled == true) msg += "The party was great, and you still alive"; else msg += "The party was horrible.. But you still alive"; } else msg += "You died, so the party become a funeral."; msg += "\nBlood-Alcohol Level: " + Math.Round(Me.BloodAlcoholLevel,1).ToString() + "%\t" + "State: " +Me.MyDrunkState.ToString()+"\n"; Console.WriteLine(msg); } private static void SetMyStates() { double n = Me.BloodAlcoholLevel; Me.IsAlive = true; if (n >= 25.0f) { Me.IsAlive = false; Me.MyDrunkState = MyPerson.DrunkState.DontRespont; } else if ((n >= 0.0f) && (n <= 1.0f)) Me.MyDrunkState = MyPerson.DrunkState.Sober; else if ((n > 1.0f) && (n <= 4.0)) Me.MyDrunkState = MyPerson.DrunkState.Happy; else if ((n > 4.0f) && (n <= 8.2)) Me.MyDrunkState = MyPerson.DrunkState.RedFace; else if ((n > 8.2f) && (n <= 13.6)) Me.MyDrunkState = MyPerson.DrunkState.SeesDimly; else if ((n > 13.6f) && (n <= 19.4f)) Me.MyDrunkState = MyPerson.DrunkState.CanNotStand; else if ((n > 19.4f) && (n < 25.0f)) Me.MyDrunkState = MyPerson.DrunkState.Sleeps; } } }
    Mutasd a teljes hozzászólást!
Címkék
abcd