2016-05-14 12 views
0

Gibt es eine Möglichkeit, einem Klassenmember innerhalb derselben Klasse einen bedingten Wert zuzuweisen?C# bedingten Wert dem Klassenmember zuweisen

public class getStudent 
{ 
private bool itsOkay = false; 
private short stID = 0; 

public bool ValusOkay 
    { 
     get {return itsOkay;} 
     set {itsOkay = value;} 
    } 
public short STid 
    { 
     get {return stID;} 
     if(itsOkay == true) 
      set {stID = 8;} 
     else 
      set {stID = 0;} 
    }  
} 

Vielen Dank im Voraus.

+0

verschieben Sie einfach den if-Test in den Set-Block. – Jasen

+0

Beachten Sie, dass Sie '== true' weglassen können, da' itsOkay' bereits ein boolescher Wert ist. –

Antwort

3

Sie können versuchen, diese

Auch von int zu short in ternäre Operator zu werfen, die Syntax wie diese

public short STid 
    { 
     get {return stID;} 

     set {stID = itsOkay ? (short)8 : (short) 0;}   
    } 
2

Sie können innen und festlegen Methode setzen alles sein sollte - if, for, while ....., aber seine Es wird nicht empfohlen, viele Codezeilen in die Eigenschaft einzufügen. Aber in Ihrem Fall können Sie einfach Ihre if innerhalb Setter setzen:

public short STid 
{ 
    get {return stID;} 
    set 
    { 
     if(itsOkay == true) 
      stID = 8;   
     else 
      stID = 0; 
    } 
} 
1

Wenn Ihr Code tatsächlich zeigt, was Sie Sie versuchen, überhaupt einen Setter nicht brauchen.

public short STid => (itsOkay) ? (short) 8 : (short) 0; 

Dadurch wird ein Getter erzeugt, der je nach gegebener Bedingung 8 oder 0 zurückgibt.

Verwandte Themen