C# 如何强制转换传递到方法中的变量?
我多次重复此代码:C# 如何强制转换传递到方法中的变量?,c#,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); } 这里是方法 pri
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);
}
这里是方法
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在方法中强制转换cc,并给我错误表达式术语int
有人能给我一些建议,我如何才能投下传来的cc吗?我意识到我可以在方法调用中进行转换,但我不希望这样做,因为我有很多这样的调用。此代码不是cast var choice=intcc
使用var-choice=intcc
但是在方法中不使用cc参数,所以只需传递int
JFBP1?如果您传递的是CC类型,那么您可以像insertccc一样传递它,10;然后在函数中调用CC.JFBP1。或者,您可以调用insertccc.JFBP1,10;将第一个参数改为int而不是CC.db2.Query?这是什么?Dapper?我认为InsertCC也应该返回操作结果。这样你就知道插入是完成了还是跳过了。谢谢,那是我的一个愚蠢的错误。我看了一段时间没有发现。将在9分钟内接受答案。@Alan2如果您不知道如何使用cast,请在google上搜索,将有大量可用信息。这应该需要几秒钟,而不是一段时间
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);
}
}
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);