如何CAST传递给方法的变量?

时间:2017-12-14 13:28:39

标签: c#

我多次重复这段代码:

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);
}

我试着把它放到一个我称之为

的方法中
InsertCC(CC.JFBP1, 10);

这是方法

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);
    }
}

然而,发生的事情是它告诉我我不能在(int)方法中使用cAST来获取cc并给我“Error expression term int”

有人可以给我一些建议,告诉我如何投出传入的cc吗?我意识到我可以在方法调用中进行转换,但是我不想这样做,因为我有很多这些调用。

1 个答案:

答案 0 :(得分:2)

此代码不会投射var choice = int(cc);

使用var choice = (int)cc;

但你没有在方法中使用cc参数,所以只需传递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);
    }
}

然后你的电话就可以了

InsertCC(CC.JFBP1, 10);