Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
As your ASP.NET web pages become more complex, it's useful to be able to break out functionality into separate subroutines or functions. Once again both the C# and Visual Basic languages support this feature. I will describe here how to create a function and how to call it using both languages. I'll start again with C#. I'll open the file ProgrammingCSharp.aspx and then I'll save it under a new name, selecting File > Save As and I'll name the file FunctionsCSharp.aspx. When you declare a function in C#, you start with an access modifier.
The access modifier determines the availability of the function. If you are placing the function in the same page in which it's called, you can declare it as private. If the function should be available from both this page and from any pages that are derived from this page, that is, in object oriented terms that are subclasses of this page, you should use the access modifier protected and if you want the function to be callable from anywhere in the application, you can use an access modifier of public.
There are other access modifiers available but those are the three that are typically used most often: private, public and protected. In this example, I'm going to be calling the function from within the same page but because I might want to use this page later on as the basis of another page I'll typically use the access modifier protected. So I start off with the protected keyword. Next, I indicate the data type of a value that the function is going to return. If the function is simply going to take some action but not return a value, you put in the keyword void with the lowercase v. But if the function is going to return a value, you use the data type in this position.
I am going to create a function that returns an integer, so I'll use the Int data type. Next, you put in the name of the function, which I'll call AddValues. In C#, you always put in parentheses at the end of the function name, regardless of whether the function can receive values. This particular function is going to receive two values or arguments. I'll name them Val1 and Val2, and I'll data type them both as integers. So I'll use the C# syntax, Int, then the name of the variable, Val1, then a comma and the second argument, Int again, and Val2 and then I close the function signature by putting in the closing parentheses. After the function signature and within the braces, you put in the code that you want to execute. Because I said that I was going to be returning an integer, I must return a value and you do that with the Return keyword.
I will return the results of this expression, Val1 plus Val2. Notice that you don't need parentheses around that expression. You can put them in if you prefer. Also notice that the plus operator in C# is used both for mathematical addition and for concatenation of strings which I have already done in other videos. This is called Operator Overloading, the reuse of an operator for more than one purpose. So that's my custom function, AddValues. Now, I'll go up to my testing function, runButton_Click, and I'm going to clear a variable called Total, once again an integer, and I'll get its value by calling my AddValues function.
Notice that Visual Web Developer already knows that the function exists and offers it in the list of functions that I can call. And after the cursor's on the function, I'll type in an opening parentheses. Visual Web Developer auto completes the function name and I'll pass in two integer values, 5 and 3 separated by commas. Next, I'll use my Output function and display the result. I'll start with the literal string, the total is, and then the plus operator to concatenate the result and I'll output the value of the variable.
I'll save my changes and run the code. I'll click the Run Code button and I'll see the result, the total is 8. So in C#, when you declare the function, you put in the access modifier, the data type and the function name. Then you declare the arguments or the parameters that you can pass into the function in a comma delimited list and each of the parameters gets a data type as well. If your function is declared as returning the value, you must return a value otherwise the compiler will complain.
Now let's do the same thing in Visual Basic. I'll open the file ProgrammingVB and I'll save it under a new name and I'll name the new file FunctionsVB.aspx. In Visual Basic, you declare functions differently depending on whether they are returning a value or not. For functions that are not going to return a value, you declare them using the keyword Sub for subroutine. These are the kinds of functions that I'm already using. The Output, runButton_Click and clearButton_Click functions don't return values; they just take certain actions and so we use the Sub keyword.
If on the other hand, you want to create a function that does return a value, you use the keyword function. The access modifier rules are the same as per C#. You can create subroutines and functions that are protected, public and private. Typically, if you are going to use the function within the current page, you use protected. So I'll start off with the access modifier protected. Then I'll put in the keyword function. Next, you put in the name of the function. I'll name it AddValues again and just as in C#, you declare a list of the values, the arguments that you want to accept in a comma delimited lis. For each argument, you can receive it by reference or by value.
There are certain more complex rules that apply to certain data types. In this case, I'm going to be receiving variables by value, which means that if I change the value within the function, it won't affect the value that was passed in. I'll name the argument Val1 and I'll declare the data type as integer. So, that's the first variable. Now, because the amount of code is going to be fairly wide, I'd like to add code on the next line. In Visual Basic, you can't just go down to the next line like you can in C#. You have to explicitly tell the complier, I'm continuing on the next line. You do that with the underscore character.
I will declare the second argument, once again saying that I'm receiving the argument by value. I'll pass in the name of the argument and once again set up the data type. At the end of the function declaration, you would then declare the data type of the value that's going to be returned. I'll use the keyword As and then Integer. So in C#, you declare the data type of the function before the function name. In Visual Basic, you declare it after the function name. When I press Enter, Visual Web Developer automatically puts in the ending code for the function, which is the words 'End function.' Now, just as in C#, I'm going to return a value. So I'll put in the Return keyword, which is done with uppercase R, and then I'll return the value val1 + val2. So there is my completed function. I'll go the runButton_Click function and I'll use it. I'll declare a variable named Total, I'll set its data type to integer and then I'll call my function AddValues and I'll pass in literal values of 5 and 3.
Then I'll output the result using my output function and once again I'll combine the literal string 'The total is' and then I'll concatenate the total variable using the ampersand. I'll save the changes and I'll run the page, I'll click the Run Code Button and once again I see the result. The total is 8. So let's review again some differences between C# and Visual Basic. In C#, when you declare a function, it's always a function. The syntax is pretty much the same regardless of whether you are returning a value. If you are not returning a value, you use the void keyword before the function name and if you are returning a value, you put in the specific data type.
In Visual Basic, if you are not returning a value, it's called a Sub or a subroutine or if you are returning a value, it's called a function and you declare the functions return data type after the function and after the arguments using the As keyword. Regardless of which language you are using, you use the Return keyword to return a value and as always, in C#, you include the semicolon at the end of the line to terminate the statement and in Visual Basic you don't. Finally, to point out one other very critical bit of difference between Visual Basic and C#, in C# white space such as line feeds and tabs are pretty much ignored.
In Visual Basic, the end of line is taken as the end of statement unless you explicitly indicate that you are continuing onto the next line using the underscore character, known here as the continuation character.
Get unlimited access to all courses for just $25/month.Become a member
61 Video lessons · 105345 Viewers
56 Video lessons · 117074 Viewers
71 Video lessons · 86292 Viewers
131 Video lessons · 41239 Viewers
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.