2017-12-31 63 views
-2

annimmt, was ist solch eine Methode im Bild unten und wie kann ich solch einen machen?Wie man eine Methode macht, die Parameter oder Eigenschaften wie One in Annotaiion Regulärer Ausdruck

Ich suchte im Internet viel und habe nichts gefunden. versuchte viele Dinge wie Attributmethode oder Eigenschaftsmethode bu nichts zu begründen.

In der Tat ist mein Problem, dass ich eine Methode so arbeiten möchte und die Eingabeparameter optional sein.

My Questions Image dies ist mein Code unten (ausgenommen Panel andere Aufzählungstyp sind):

public static void Reset(System.Windows.Forms.Panel panel, formulaType formulaType, ShalvarType shalvarType = 0 
      , DamanType damanType = 0, YaqeType yaqeType = 0, BalataneType balataneType = 0, AstinType astinType = 0) 
     { 


      object[,] collcetion = null; 
      switch (formulaType) 
      { 
       case formulaType.Shalvar: 
        collcetion = shalvarFurmula(shalvarType); 
        break; 
       case formulaType.Daman: 
        collcetion = damanFurmula(damanType); 
        break; 
       case formulaType.Yaqe: 
        collcetion = yaqeFurmula(yaqeType); 
        break; 
       case formulaType.Balatane: 
        collcetion = balataneFurmula(balataneType); 
        break; 
       case formulaType.Astin: 
        collcetion = astinFurmula(astinType); 
        break; 

      } 

      //System.Windows.Forms.TextBox 

      for (int i = 0; i < collcetion.Length; i++) 
      { 
       if (panel.Controls[collcetion[i, 0].ToString()].GetType().ToString() == "System.Windows.Forms.TextBox") 
       { 
        panel.Controls[collcetion[i, 0].ToString()].Text = collcetion[i, 1].ToString(); 
       } 
       else 
       { 
        System.Windows.Forms.NumericUpDown num = panel.Controls[collcetion[i, 0].ToString()] as System.Windows.Forms.NumericUpDown; 
        num.Value = Convert.ToDecimal(collcetion[i, 1]); 
       } 
      } 

     } 

Ich möchte Panel und Formel-Typ haben, aber aus dem dritten so sein zu beenden. in der Tat gebe ich dem Enum-Typ den Weg wie Bild.

Übrigens ist der Code, den ich sende, noch nicht vollständig.

Thankx

+0

es nur machen eine Standard-Eigenschaft des Attributs. –

+0

Ich habe das nicht verstanden. lass mich die qestion bearbeiten, um klarer zu sein – Heydar

+0

Nun, wie ich schon sagte, wusste ich nicht einmal, was es ist. Also, wie willst du, dass ich etwas für dich mache? Zuerst muss ich Ihnen ein Bild zeigen, dass Profis wie Sie verstehen und den Typ, dann die ganze Frage indentify. aber ich akzeptiere, dass ich den Code auch winden sollte. – Heydar

Antwort

1

Was Ihr Bild bezieht sich eine Attribute ‚s optionale Eigenschaften sind, werden sie wie folgt definiert:

public class MyAttribute : Attribute 
{ 
    public string SomeData { get; set; } 
} 

Was Sie wollen, ist optionale Parameter zu verwenden. Sie erreichen dies wie folgt aus:

public void DoSomething(string data = "", int age = 0) // data will be empty if no value is given 
{ 
} 

Und Sie können dann mit den beiden diese Methode aufrufen:

DoSomething(); 
DoSomething("some data"); 
DoSomething(age: 10); 
+0

Ich kenne optionale Parameter. aber der schlechte Punkt des optionalen Parameters ist, dass es in der Reihenfolge gegeben werden muss, zum Beispiel beziehen sich auf meinen Code Ich möchte gerade AstinType der Methode geben, und AstinType ist am Ende. Ich muss anderen 4 Parameter geben Null oder Null oder ... dann am Ende geben Sie den AstinType, aber ich möchte dies direkt nach der zweiten Eingabe nicht in der Qeue geben, während die Art und Weise, die Bild verwenden Sie nicht Anliegen der Reihenfolge sind Eingabe und ... – Heydar

+0

@Heydar Das ist nicht wahr, schau auf mein Update. Sie verwenden 'parameterName: value', um die Reihenfolge anzugeben –

Verwandte Themen