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.
'(int) c c.JFBP1'? –
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. –
'db2.Query'? Was ist das? Dapper? –
spender