Now that we have presented our first console application (Fig. 3.1), we provide a step-by-step explanation of how to compile and execute it using Visual C# Express.
Creating the Console Application
After opening Visual C# 2005 Express, select File > New Project... to display the New Project dialog (Fig. 3.3), then select the Console Application template. In the dialog's Name field, type Welcome1. Click OK to create the project. The IDE now contains the open console application, as shown in Fig. 3.4. Note that the editor window already contains some code provided by the IDE. Some of this code is similar to that of Fig. 3.1. Some is not, and uses features that we have not yet discussed. The IDE inserts this extra code to help organize the application and to provide access to some common classes in the .NET Framework Class Libraryat this point in the book, this code is neither required nor relevant to the discussion of this application; delete all of it.
Figure 3.3. Creating a Console Application with the New Project dialog.
(This item is displayed on page 84 in the print version)
Figure 3.4. IDE with an open console application.
(This item is displayed on page 84 in the print version)
The code coloring scheme used by the IDE is called syntax-color highlighting and helps you visually differentiate application elements. Keywords appear in blue, and other text is black. When present, comments are green. In this book, we syntax shade our code similarlybold italic for keywords, italic for comments, bold gray for literals and constants, and black for other text. One example of a literal is the string passed to Console.WriteLine in line 10 of Fig. 3.1. You can customize the colors shown in the code editor by selecting Tools > Options.... This displays the Options dialog (Fig. 3.5). Then click the plus sign, +, next to Environment and select Fonts and Colors. Here you can change the colors for various code elements.
Figure 3.5. Modifying the IDE settings.
Modifying the Editor Settings to Display Line Numbers
Visual C# Express provides many ways to personalize your coding experience. In this step, you will change the settings so that your code matches that of this book. To have the IDE display line numbers, select Tools > Options.... In the dialog that appears, click the Show all settings checkbox on the lower left of the dialog, then click the plus sign next to Text Editor in the left pane and select All Languages. On the right, check the Line Numbers check box. Keep the Options dialog open.
Setting Code Indentation to Three Spaces per Indent
In the Options dialog that you opened in the previous step (Fig. 3.5), click on the plus sign next to C# in the left pane and select Tabs. Enter 3 for both the Tab Size and Indent Size fields. Any new code you add will now use three spaces for each level of indentation. Click OK to save your settings, close the dialog and return to the editor window.
Changing the Name of the Application File
For applications we create in this book, we change the default name of the application file (i.e., Program.cs) to a more descriptive name. To rename the file, click Program.cs in the Solution Explorer window. This displays the application file's properties in the Properties window (Fig. 3.6). Change the File Name property to Welcome1.cs.
Figure 3.6. Renaming the program file in the Properties window.
(This item is displayed on page 86 in the print version)
In the editor window (Fig. 3.4), type the code from Fig. 3.1. After you type (in line 10) the class name and a dot (i.e., Console.), a window containing a scrollbar is displayed (Fig. 3.7). This IDE feature, called IntelliSense, lists a class's members, which include method names. As you type characters, Visual C# Express highlights the first member that matches all the characters typed, then displays a tool tip containing a description of that member. You can either type the complete member name (e.g., WriteLine), double click the member name in the member list or press the Tab key to complete the name. Once the complete name is provided, the IntelliSense window closes.
Figure 3.7. IntelliSense feature of Visual C# Express.
When you type the open parenthesis character, (, after Console.WriteLine, the Parameter Info window is displayed (Fig. 3.8). This window contains information about the method's parameters. As you will learn in Chapter 7, there can be several versions of a methodthat is, a class can define several methods that have the same name as long as they have different numbers and/or types of parameters. These methods normally all perform similar tasks. The Parameter Info window indicates how many versions of the selected method are available and provides up and down arrows for scrolling through the different versions. For example, there are 19 versions of the WriteLine methodwe use one of these 19 versions in our application. The Parameter Info window is one of the many features provided by the IDE to facilitate application development. In the next several chapters, you will learn more about the information displayed in these windows. The Parameter Info window is especially helpful when you want to see the different ways in which a method can be used. From the code in Fig. 3.1, we already know that we intend to display one string with WriteLine, so because you know exactly which version of WriteLine you want to use, you can simply close the Parameter Info window by pressing the Esc key.
Figure 3.8. Parameter Info window.
Saving the Application
Select File > Save All to display the Save Project dialog (Fig. 3.9). In the Location text box, specify the directory where you want to save this project. We choose to save the project in the MyProjects directory on the C: drive. Select the Create directory for solution checkbox (to enable Visual Studio to create the directory if it does not already exist), and click Save.
Figure 3.9. Save Project dialog.
Compiling and Running the Application
You are now ready to compile and execute your application. Depending on the type of application, the compiler may compile the code into files with a .exe (executable) extension, a .dll (dynamic link library) extension or one of several other extensions. Such files are called assemblies and are the packaging units for compiled C# code. These assemblies contain the Microsoft Intermediate Language (MSIL) code for the application.
To compile the application, select Build > Build Solution. If the application contains no syntax errors, your console application will compile into an executable file (named Welcome1.exe, in the project's directory). To execute this console application (i.e., Welcome1.exe), select Debug > Start Without Debugging (or type F5), which invokes the Main method (Fig. 3.1). The statement in line 10 of Main displays Welcome to C# Programming!. Figure 3.10 shows the results of executing this application. Note that the results are displayed in a console window. Leave the application open in Visual C# Express; we will go back to it later in this section.
Figure 3.10. Executing the application shown in Fig. 3.1.
Running the Application from the Command Prompt
As we mentioned at the beginning of the chapter, you can execute applications outside the IDE in a Command Prompt. This is useful when you simply want to run an application rather than open it for modification. To open the Command Prompt, select Start > All Programs > Accessories > Command Prompt. [Note: Windows 2000 users should replace All Programs with Programs.] The window (Fig. 3.11) displays copyright information, followed by a prompt that indicates the current directory. By default, the prompt specifies the current user's directory on the local machine (in our case, C:Documents and Settingsdeitel). On your machine, the folder name deitel will be replaced with your username. Enter the command cd (which stands for "change directory"), followed by the /d flag (to change drives if necessary), then the directory where the application's .exe file is located (i.e., the Release directory of your application). For example, the command cd /d C:MyProjectsWelcome1Welcome1inRelease (Fig. 3.12) changes the current directory, to the Welcome1 application's Release directory on the C: drive. The next prompt displays the new directory. After changing to the proper directory, you can run the compiled application by entering the name of the .exe file (i.e., Welcome1). The application will run to completion, then the prompt will display again, awaiting the next command. To close the Command Prompt, type exit (Fig. 3.12) and press Enter.
Figure 3.11. Executing the application shown in Fig. 3.1 from a Command Prompt window.
(This item is displayed on page 89 in the print version)
Figure 3.12. Executing the application shown in Fig. 3.1 from a Command Prompt window.
(This item is displayed on page 89 in the print version)
Note that Visual C# 2005 Express maintains a Debug and a Release directory in each project's bin directory. The Debug directory contains a version of the application that can be used with the debugger (see Appendix C, Using the Visual Studio 2005 Debugger). The Release directory contains an optimized version that you could provide to your clients. In the complete Visual Studio 2005, you can select the specific version you wish to build from the Solution Configurations drop-down list in the toolbars at the top of the IDE. The default is the Debug version.
[Note: Many environments show Command Prompt windows with black backgrounds and white text. We adjusted these settings in our environment to make our screen captures more readable.]
Syntax Errors, Error Messages and the Error List Window
Go back to the application in Visual C# Express. When you type a line of code and press the Enter key, the IDE responds either by applying syntax-color highlighting or by generating a syntax error, which indicates a violation of Visual C#'s rules for creating correct applications (i.e., one or more statements are not written correctly). Syntax errors occur for various reasons, such as missing parentheses and misspelled keywords.
When a syntax error occurs, the IDE underlines the error in red and provides a description of the error in the Error List window (Fig. 3.13). If the Error List window is not visible in the IDE, select View > Error List to display it. In Figure 3.13, we intentionally omitted the first parenthesis in line 10. The first error contains the text "; expected" and specifies that the error is in column 25 of line 10. This error message appears when the compiler thinks that the line contains a complete statement, followed by a semicolon, and the beginning of another statement. The second error contains the same text, but specifies that this error is in column 54 of line 10 because the compiler thinks that this is the end of the second statement. The third error has the text "Invalid expression term ')'" because the compiler is confused by the unmatched right parenthesis. Although we are attempting to include only one statement in line 10, the missing left parenthesis causes the compiler to incorrectly assume that there is more than one statement on that line, to misinterpret the right parenthesis and to generate three error messages.
Figure 3.13. Syntax errors indicated by the IDE.
Modifying Your Simple C# Application
Introduction to Computers, the Internet and Visual C#
Introduction to the Visual C# 2005 Express Edition IDE
Introduction to C# Applications
Introduction to Classes and Objects
Control Statements: Part 1
Control Statements: Part 2
Methods: A Deeper Look
Classes and Objects: A Deeper Look
Object-Oriented Programming: Inheritance
Polymorphism, Interfaces & Operator Overloading
Graphical User Interface Concepts: Part 1
Graphical User Interface Concepts: Part 2
Strings, Characters and Regular Expressions
Graphics and Multimedia
Files and Streams
Extensible Markup Language (XML)
Database, SQL and ADO.NET
ASP.NET 2.0, Web Forms and Web Controls
Networking: Streams-Based Sockets and Datagrams
Searching and Sorting
Appendix A. Operator Precedence Chart
Appendix B. Number Systems
Appendix C. Using the Visual Studio 2005 Debugger
Appendix D. ASCII Character Set
Appendix E. Unicode®
Appendix F. Introduction to XHTML: Part 1
Appendix G. Introduction to XHTML: Part 2
Appendix H. HTML/XHTML Special Characters
Appendix I. HTML/XHTML Colors
Appendix J. ATM Case Study Code
Appendix K. UML 2: Additional Diagram Types
Appendix L. Simple Types