2017-12-14 1 views
-2

Ich hatte diesen Code viele Male wiederholt:Wie kann ich eine Variable CAST, die an eine Methode übergeben wird?

if (db2.Query<int>("SELECT 1 FROM CARDCHOICE WHERE CC = ?", (int)CC.JFBP1).Count == 0) 
{ 
    var temp10 = Enumerable.Range(0, 10).Select(i => new CardChoice { Cc = (int)CC.JFBP1, Number = i }); 
    db2.InsertAll(temp10); 
} 

Ich habe versucht, diese in ein Verfahren zu legen, das ich wie dieses hier

InsertCC(CC.JFBP1, 10); 

genannt ist die Methode

private static void InsertCC(CC cc, int qty) 
{ 
    var choice = int(cc); 
    if (db2.Query<int>("SELECT 1 FROM CARDCHOICE WHERE CC = ?", choice).Count == 0) 
    { 
     var temp = Enumerable.Range(0, qty).Select(i => new CardChoice { Cc = choice, Number = i }); 
     db2.InsertAll(temp); 
    } 
} 

Doch was passiert ist, dass es mir sagt, ich kann nicht cc in der Methode mit (int) CAST und gibt mir "Fehlerausdruck Begriff int"

Kann mir jemand einen Ratschlag geben, wie ich den übergebenen CC einwerfen könnte? Ich weiß, dass ich das Casting im Methodenaufruf tun konnte, würde es aber lieber nicht machen, da ich viele dieser Aufrufe habe.

+6

'(int) c c.JFBP1'? –

+1

Wenn Sie den Typ CC übergeben, können Sie ihn einfach wie folgt übergeben: InsertCC (CC, 10); Rufen Sie dann CC.JFBP1 in Ihrer Funktion auf. Alternativ können Sie InsertCC (CC.JFBP1,10) aufrufen; und ändere dein erstes Argument in int statt in CC. –

+0

'db2.Query '? Was ist das? Dapper? – spender

Antwort

2

Dieser Code gegossen nicht var choice = int(cc);

Verwendung var choice = (int)cc;

aber nur int

private static void InsertCC(int choice, int qty) 
{ 
    if (db2.Query<int>("SELECT 1 FROM CARDCHOICE WHERE CC = ?", choice).Count == 0) 
    { 
     var temp = Enumerable.Range(0, qty).Select(i => new CardChoice { Cc = choice, Number = i }); 
     db2.InsertAll(temp); 
    } 
} 

dann Ihren Anruf

wird nicht funktionieren cc Parameter innerhalb der Methode verwendet wird, so passieren
InsertCC(CC.JFBP1, 10); 
+1

Danke, das war ein dummer Fehler von mir. Ich habe es eine Weile angeschaut und das nicht bemerkt. Wird die Antwort in 9 Minuten akzeptieren. – Alan2

+2

@ Alan2 Wenn Sie nicht wissen, wie man einen Cast verwendet, suchen Sie es auf Google und es wird _alot_ von Informationen verfügbar sein. Das sollte Sekunden dauern, nicht _a while_ –

Verwandte Themen