C#开关箱使用循环外变量
所以我的问题是,我有一个循环,循环中有一个switch语句。我在循环中声明变量,但在switch语句中声明。如何将其导入switch语句 例如:C#开关箱使用循环外变量,c#,variables,switch-statement,C#,Variables,Switch Statement,所以我的问题是,我有一个循环,循环中有一个switch语句。我在循环中声明变量,但在switch语句中声明。如何将其导入switch语句 例如: for (int i = 1; i < 3; i++) { var detectionid = detectionResult.Sequence.Items[i]; ulong trackId = detectionid.TrackId; switch (i) { case 1:
for (int i = 1; i < 3; i++)
{
var detectionid = detectionResult.Sequence.Items[i];
ulong trackId = detectionid.TrackId;
switch (i)
{
case 1:
Console.WriteLine(trackId);
break;
case 2:
Console.WriteLine(trackId);
break;
default:
Console.WriteLine("Default case");
break;
}
}
这里的问题是trackId的声明。您应该使用ulong或double,而不是同时使用两者
for (int i = 1; i < 3; i++)
{
var detectionid = detectionResult.Sequence.Items[i];
ulong trackId = detectionid.TrackId;
// or
//double trackId = detectionid.TrackId;
// or
//var trackId = detectionid.TrackId;
switch (i)
{
case 1:
Console.WriteLine(trackId);
break;
case 2:
Console.WriteLine(trackId);
break;
default:
Console.WriteLine("Default case");
break;
}
}
for(int i=1;i<3;i++)
{
var detectionid=detectionResult.Sequence.Items[i];
ulong trackId=检测ID.trackId;
//或
//double trackId=检测ID.trackId;
//或
//var trackId=检测ID.trackId;
开关(一)
{
案例1:
控制台写入线(trackId);
打破
案例2:
控制台写入线(trackId);
打破
违约:
Console.WriteLine(“默认情况”);
打破
}
}
没有双ulong
类型
是一个double
是一个ulong
var
让编译器推断类型
var trackId = detectionid.TrackId;
使用
var
而不是double-ulong
。如果我的代码粘贴错误,我将其更改!现在您已经修复了类型,代码似乎没有任何问题。如果你只做ulong trackId=5,你能重现这个问题吗代码>?还可以包括您得到的确切错误。仍然不起作用,它说“不能在声明前使用局部变量‘trackId’”。似乎您省略了一些重现问题所需的代码。如果从行ulong trackId=detectionid.trackId向后搜索代码>您是否找到另一个出现的trackId
?
var trackId = detectionid.TrackId;