首先,您所拥有的是构造函数,而不是方法,返回 void(nothing) 的正确方法将是这样的(根据 C# 或 Java 语法):
public void write()
{}
现在,关于您最初问的问题:subroutine 和 method 有什么区别?,嗯,基本上没有。但是如果你想更深入,那么我们将不得不去汇编编程IMO。汇编中的子程序实际上与方法有两点不同:
- 他们没有传递参数
- 他们不返回任何东西
而且,您可能会问自己:那我该如何处理任何事情,这个子程序是如何工作的?在汇编中,寄存器在这里发挥作用,而不是像在每个高级编程语言中的方法那样将参数传递给您的子程序,您必须在调用子程序之前保存您正在处理的值(参数),确保在到达子程序之前该值不会受到影响。以同样的方式,您将结果值保存在另一个寄存器中以供以后使用。在汇编中还有其他方法可以做到这一点,也很常用,通过使用堆栈推送和弹出值,但我认为我的观点已经足够清楚了。如果有任何用途,我将使用一个简单的子例程将两个数字相加,在汇编中向您发布一段代码:
org 00H
mov R3,#10 ;save the first parameter
mov R4,#20 ;save the second parameter
call Sum ;execute the subroutine
mov A,R3 ;mov 30 to accumulator
Sum: ;subroutine declaration
add R3,R4
ret
end