是否可以在不运行项目的情况下使用vs2010执行vb.net代码?

时间:2010-09-29 16:10:33

标签: vb.net visual-studio-2010 ide

这可能是一个奇怪的问题而且没有答案,但我想我会发布它以了解你将如何去做。我有一行代码:

Grade = Math.Round((Math.Abs(CorrectAnswers) / TotalQuestions) * 100)

基本上该行只是计算出等级没有主要代码在那里工作,我想要做的是在不运行整个应用程序的情况下执行具有不同变量的特定行并导航到应用程序中对于该段将完成的点150问题考试,或编写一些#temp页面并从那里运行它。

我正在尝试跟踪代码中很少发生的错误(你知道宇宙中的行星何时没有宇宙对齐)我认为我的问题在于这个子集而我正在努力寻找更好的/更简单的测试方法。

3 个答案:

答案 0 :(得分:2)

您可以将其提取到一个方法中,该方法将所需的值作为参数,然后创建一个测试工具来执行它。

答案 1 :(得分:1)


如果将Class Diagram项添加到项目中,并从Solution Explorer中将包含该方法的类文件拖入其中,则可以调用静态方法(右键单击Class元素或使用Class Diagram Menu)。
它会询问你参数的值。

而且你真的可以使用立即窗口(Ctrl + G或Debug-> Windows菜单)
打开它并输入:
CorrectAnswers = 25.5
TotalQuestions = 30
?Math.Round((Math.Abs​​(CorrectAnswers)/ TotalQuestions)* 100)
你会得到:
85.0 {双}
    双倍:85.0
提示:键入> cls以清除即时窗口内容 我不明白Bill怎么说他从VB6中错过了它。我们在VisualStudio上也有它并且功能齐全:) 问候。
ps:我从西班牙语2008版本翻译,所以你可以有其他菜单选项,热键等。

答案 2 :(得分:0)

所以有150个问题,它们可能是对还是错?这意味着只有151种可能的输入?为什么不直接计算它们呢?在控制台应用程序中运行它,看看您是否喜欢结果。

  Sub Main()
    Dim Grade As Integer
    Const TotalQuestions = 150
    Console.WriteLine("Marks             Grade")
    For CorrectAnswers = 0 To 150
      Grade = Math.Round((Math.Abs(CorrectAnswers) / TotalQuestions) * 100)
      Console.WriteLine(Format(CorrectAnswers, "000") & " out of 150 => " & _
                         Format(Grade, "000"))
    Next CorrectAnswers
    Console.ReadLine()
  End Sub

请注意,Math.Round默认使用银行家的舍入。如果a的小数分量在两个整数之间,其中一个是偶数而另一个是奇数,则返回偶数。 You can change this behaviour