Functions, procedures and methods in C# and VFP
C#
void (etc)
|
VFP
Procedure, Function, Parameters, Return
|
This is where you'll find the biggest difference between the two languages. Although
Visual FoxPro is now an object oriented language, it still retains the procedures and
functions of the original dBase language. You can write a complete VFP application as
a set of communicating and co-operating classes but you still have the flexibility of
writing procedural code and sometimes this is very much easier. A C sharp application
on the other hand has to be based entirely on classes.
C# Syntax Notes
When you start a new project in Visual Studio you are presented with a
template something like this:
namespace MyApplication
{
Class Program
{
static void
Main(string[] args)
{
}
}
}
The declaration of Main here runs as follows:
- static
-
This method belongs to the class rather than to an object based on the class. In
practical terms this means that Main can be invoked without having to instantiate
an object of class Program.
- void
-
This method returns no value. If it returned, for example, an integer then the
declaration would have started:
static int
Main(string[] args)
and the method would have ended with a return statement
to return an integer value from the method.
- Main
-
This is the name of the method and must be unique within this class.
- string[]
-
This method expects an array of strings as a parameter. If it expected no parameters
then the brackets would have been empty and the declaration would have started:
static void
Main()
- args
-
The array of strings will be named args.
Because C# is so object-oriented, there are no built-in general-purpose functions in
the language. If you want to display "Hello World" then you must use the
WriteLine method of the built-in
Console object:
Console.WriteLine
("Hello World");
VFP Syntax Notes
Strictly speaking, a FoxPro function returns a value and has no other effects whereas
a FoxPro procedure does have some external effect and returns no value.
A procedure is declared like this:
Procedure MyProc
Lparameters tcParm1, tcParm2
EndProc
and called like this:
Do MyProc
With "First parameter", "Second parameter"
A function is declared like this:
Function MyFunc
Lparameters tcParm1, tcParm2
Return lcAnswer
EndProc
and called like this:
lcValue = MyFunc("First parameter", "Second parameter")
In practice though you can use the function calling syntax on a procedure. If you
examine the return value to a parameter you'll find that the procedure always returns
true. There is however no need have an assignment statement. You can call a procedure as
though it were a function and just throw the return value away:
MyProc("First parameter", "Second parameter")
A VFP method is just a function which is declared inside a
Define Class block.
For
|
Language index
|
If
|