Results 1 to 3 of 3

Thread: C# get set hoe het niet moet maar hoe moet het dan wel.

  1. #1

    C# get set hoe het niet moet maar hoe moet het dan wel.

    Ik probeer in C# een methode te maken waarbij ik in mijn programma de buttonstatus kan lezen en zetten.
    Dus als de gebruiker in editmode is dan moet de knop "opslaan" en "annuleren enabled zijn en de knop "nieuw" niet.

    Ik heb het idee dat onderstaande code een stuk eenvoudiger kan en los daarvan krijg ik in mijn switch>case de opmerking "A constant value is expected"

    Kan iemand mij laten zien hoe het wel moet ?
    Ik wil dus eigenlijk alleen iEditButtonState kunnen setten en getten

    Code:
            public class cEditButtonState
            {
                public static cEditButtonState InEdit { get; }
                public static cEditButtonState InEditAndChanged { get; }
                public static cEditButtonState Empty { get; }
            }
    
            public cEditButtonState EditButtonState = cEditButtonState.Empty;
    
            public cEditButtonState iEditButtonState
            {
                get {return EditButtonState;}
                set
                {
                    switch (value)
                    {
                        case cEditButtonState.InEdit: // geeft een A constant value is expected
                             btNew.Enabled = false;
                            break;
                    }
                    EditButtonState = value;   
                }
            }
    Gr,
    Fonzie
    Last edited by Fonzie; 22-Jun-18 at 22:00.

  2. #2
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Quote Originally Posted by Fonzie View Post
    Ik probeer in C# een methode te maken waarbij ik in mijn programma de buttonstatus kan lezen en zetten.
    Dus als de gebruiker in editmode is dan moet de knop "opslaan" en "annuleren enabled zijn en de knop "nieuw" niet.
    Ik heb het idee dat onderstaande code een stuk eenvoudiger kan
    Gebruik een enum om je edit-mode bij te houden?
    C# Code:
    1. *       public enum EditMode
    2.         {
    3.             InEdit, InEditAndChanged, Empty
    4.         }

    en dan b.v.:
    C# Code:
    1. *       private EditMode _editMode;
    2.  
    3.         public EditMode EditMode
    4.         {
    5.             get => _editMode;
    6.             set
    7.             {
    8.                 _editMode = value;
    9.                 switch (value)
    10.                 {
    11.                     case EditMode.InEdit:
    12.                         // ...
    13.                         break;
    14.                     case EditMode.InEditAndChanged:
    15.                         // ...
    16.                         break;
    17.                     case EditMode.Empty:
    18.                         // ...
    19.                         break;
    20.                     default:
    21.                         // ...
    22.                         break;
    23.                 }
    24.             }
    25.         }


    In de veronderstelling dat de New button enkel mag geactiveerd zijn bij Empty en de Save button enkel bij InEditAndChanged kan het ook zo:
    C# Code:
    1. *       private EditMode _editMode;
    2.  
    3.         public EditMode EditMode
    4.         {
    5.             get => _editMode;
    6.  
    7.             set
    8.             {
    9.                 _editMode = value;
    10.                 buttonNew.Enabled = value == EditMode.Empty;
    11.                 buttonSave.Enabled = value == EditMode.InEditAndChanged;
    12.             }
    13.         }


    Quote Originally Posted by Fonzie View Post
    los daarvan krijg ik in mijn switch>case de opmerking "A constant value is expected"
    In C# moeten switch variabelen statisch zijn (compiler moet de waarden kennen @ compile).
    All methodologies are based on fear. -- Kent Beck.

  3. #3
    Ah dank je wel Dirk!
    Er is niets leukers dan van andere mensen iets leren, ik ga je uitleg implementeren.

    Gr,
    Fonzie

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •