我在我在下面++的代码点获得在Visual Studio中的“检测不到的代码”的消息。 你能找出我做了什么错?
try
{
RegistryKey OurKey = Registry.CurrentUser;
OurKey.CreateSubKey("Software\\Resources\\Shared");
OurKey = OurKey.OpenSubKey("Software\\Resources\\Shared", true);
for (int i = 0; i < cmbPaths.Items.Count; i++) //<---- problem with i
{
OurKey.SetValue("paths" + i, cmbPaths.Items[i]);
break;
}
}
问题是,这其实不是一个循环。 您没有上破任何条件,所以你能等效喜欢写东西
if(cmbPath.Items.Count > 0)
{
OurKey.SetValue("paths" + 0, cmbPaths.Items[0]);
}
或者你有什么纠正像
for (int i = 0; i < cmbPaths.Items.Count; i++)
{
OurKey.SetValue("paths" + i, cmbPaths.Items[i]);
if(someConditionHolds)
break;
}
问题是,因为你break;
在没有它做别的机会的循环,我(的增量i++
)将永远不会被达到。
虽然你的问题就解决了我要告诉你这一点,你可以使用CreateSubKey()方法,你的目的。 我认为这是一个更好的选择。 :)
//Creates a new subkey or opens an existing subkey for write access.
var ourKey = Registry.CurrentUser.CreateSubKey("Software\\Resources\\Shared");
您也可以最终获得可达代码,如果你使用比方说实体框架,你没有添加参照该项目。
假设你有几个项目,如数据层项目,一个域类,然后创建用于测试或任何一个控制台应用程序,您引用在您的DbContext是的,但如果你不使用说的NuGet并加入EF,你将试图写一个循环等时获取代码可达...