Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何在VisualStudio中运行简单函数而不创建表单_Vb.net - Fatal编程技术网

Vb.net 如何在VisualStudio中运行简单函数而不创建表单

Vb.net 如何在VisualStudio中运行简单函数而不创建表单,vb.net,Vb.net,我知道这是一个新手问题,但是如何在VisualStudio中运行简短的vb.net函数而不创建表单呢?我目前正在处理家庭作业问题,希望通过将答案输入到visual studio来再次检查我的答案,但似乎不知道怎么做 这就是我正在尝试运行的,例如: Dim num as Integer = 30 If num > 20 Then num -= 10 If num < 20 Then num *= 2 Else num /= 2 End

我知道这是一个新手问题,但是如何在VisualStudio中运行简短的vb.net函数而不创建表单呢?我目前正在处理家庭作业问题,希望通过将答案输入到visual studio来再次检查我的答案,但似乎不知道怎么做

这就是我正在尝试运行的,例如:

 Dim num as Integer = 30 

 If num > 20 Then 
     num -= 10
 If num < 20 Then 
     num *= 2 
 Else
     num /= 2 
 End if 
 Else 
 If num > 10 Then
    num += 2
 End If 
 End If 
 DisplayTextBox.Text = CStr(num) 
Dim num作为整数=30
如果num>20,则
num-=10
如果num<20,则
num*=2
其他的
num/=2
如果结束
其他的
如果num>10,则
num+=2
如果结束
如果结束
DisplayTextBox.Text=CStr(num)

要对功能进行简单检查,我倾向于使用控制台应用程序。但是,DisplayTextBox.Text对象是表单应用程序的一部分,因此我将使用控制台进行输出

Module Module1
    Sub Main()
        Dim num As Integer = 30
        If num > 20 Then
            num -= 10
            If num < 20 Then
                num *= 2
            Else
                num /= 2
            End If
        Else
            If num > 10 Then
                num += 2
            End If
        End If
        Console.WriteLine(num)
    End Sub
End Module
模块1
副标题()
Dim num作为整数=30
如果num>20,则
num-=10
如果num<20,则
num*=2
其他的
num/=2
如果结束
其他的
如果num>10,则
num+=2
如果结束
如果结束
控制台写入线(num)
端接头
端模块
编辑添加的链接


这是一个探索使用类和编写单元测试的绝佳机会,因为这是我们编写代码并验证其在真实环境中是否工作的方式。对于这种情况,我通常只在单元测试项目中完成所有工作

在Visual Studio中,添加一个新项目,然后选择Visual Basic>测试>单元测试项目(.NET标准或.NET核心,以您正在使用的为准。)

第一步是修改代码,使其接收输入,而不是设置
num
的值。然后修改它,使其返回一个值,而不是在窗体上显示它

Module Module1
    Function DoSomethingWithNumber(num As Integer) as Integer
        If num > 20 Then
            num -= 10
            If num < 20 Then
                num *= 2
            Else
                num /= 2
            End If
        Else
            If num > 10 Then
                num += 2
            End If
        End If
        Return num
    End Function
End Module
模块1
函数DoSomethingWithNumber(num为整数)为整数
如果num>20,则
num-=10
如果num<20,则
num*=2
其他的
num/=2
如果结束
其他的
如果num>10,则
num+=2
如果结束
如果结束
返回数
端函数
端模块
这更接近于我们通常编写代码的方式。我们不希望执行计算的部分也在表单上显示它,因为如果我们想要相同的逻辑但不想在表单上显示它,会发生什么

此外,将其显示在表单上会使编写单元测试变得更加困难或不可能,编写好代码的一部分是编写我们可以编写单元测试的代码

现在,您可以通过调用函数、传入不同的值并验证结果是否符合预期来测试该函数。为此,创建一个单元测试类,如下所示:

<TestClass>
Public Class MyUnitTests
    <TestMethod>
    Sub DoesSomethingWithNumber_DoesRightThingWithNumberGreaterThan20()
        Dim input As Integer = 21
        Dim output = Module1.DoSomethingWithNumber(input)
        Assert.AreEqual(22, output)
    End Sub

    <TestMethod>
    Sub DoesSomethingWithNumber_DoesRightThingWithNumberLessThan10()
        Dim input As Integer = 5
        Dim output = Module1.DoSomethingWithNumber(input)
        Assert.AreEqual(input, output)
    End Sub
End Class

公共类MyUnitTests
Sub DoesMething with number_DoesRightThing with numbers创建An20()
整数形式的Dim输入=21
Dim输出=模块1.DoSomethingWithNumber(输入)
Assert.AreEqual(22,输出)
端接头
Sub DoesMething with number_DoesRightThing with numbers with than 10()
作为整数的Dim输入=5
Dim输出=模块1.DoSomethingWithNumber(输入)
Assert.AreEqual(输入、输出)
端接头
末级
从名称和值可以明显看出,我并不真正知道代码应该做什么。关键是,您应该给出测试方法的名称来描述您正在测试的条件。然后您可以“断言”输出是您所期望的

然后,从测试菜单中,选择运行>所有测试

“测试资源管理器”窗口将显示哪些测试通过,哪些测试失败。如果测试断言您应该具有某个值,但您的函数返回了其他值,那么测试将失败。现在,您知道您的代码并没有实现您希望它实现的功能。您可以右键单击测试并使用断点对其进行调试,或者只是阅读代码,看看是否可以找到问题

这些测试的好处在于,您可以针对多种条件进行测试。因此,如果您修复代码以解释一个预期结果,但在过程中破坏了其他内容,测试将告诉您。当你所有的测试都通过时,你已经成功了

这就是我们在工作中编写代码的方式(希望如此)。有些人首先编写测试。有些人编写代码,然后编写测试。但是通过这样做,我们知道我们的代码做了我们期望的事情。测试还描述了代码应该做什么。如果其他人做了更改,他们可以运行测试,并知道他们没有破坏任何东西


最后,学习为我们的代码编写单元测试可以提高我们编写的代码的质量。它引导我们编写更简单的代码并遵循其他最佳实践。

检查答案是个好主意。启用选项Strict。这将在设计时指出可能在运行时产生异常的潜在问题。例如,
n/=2
返回一个double(除法不必变成整数)n声明为整数。如果调用
Console.WriteLine
,则会在VS中看到写入输出窗口的指定文本。如果使用
Debug.WriteLine
,则甚至可以将代码保留在中,并且在编译发布版本时将其排除,其中,
Console.WriteLine
也将包含在发布版本中。用户在正常使用时不会注意到它,但它会在那里。请注意,
Debug.WriteLine
的结果并不总是像
Console.WriteLine
的结果那样立即出现。为了充分利用这两个方面,您可以使用条件编译。也许您应该研究单元测试?这是几个额外的步骤,但是如果您将代码放在单独的方法中,您可以使用它执行不同的测试,并使用这些方法验证结果。您还可以定义多个/不同的测试