Practically speaking, the difference is symantecs.
Note the declarations below:
VB, returns a value:
Function fname (param1 AS <data type>, ...) AS <return type>
C#, returns a value:
<return type> fname (<data type> param1, ...)
VB, does not return a value:
Sub fname (param1 AS <data type>, ...)
C#, does not return a value:
void fname (<data type> param1, ...)
In general, any code-structure that has a name and a parameter list (may be empty) can be referred to as a function. Any member of a class that can be referred to as a function can also be referred to as a method. In the .NET world, only
VB makes the distinction between those that return a value (Function) and those that don't (Sub).
For more in-depth details, you might check out, "What is the Common Language Specification?" found at
http://msdn.microsoft.com/library/de...cification.asp
If you really, really want to get into it, you could start reading about memory management, stacks, and heaps, or you explore the general theory of programming...
Brandon