Well, I just finished booking air tickets to Vietnam, and thought I'd write a little program to illustrate some simple concepts and have some fun. Hopefully this will prove to be both fun and educational in starting to learn how to program in C#! 
It should also prove just how fast and productive C# is, because you can create an entire online air ticket booking system in only a few minutes and in less than 100 lines of code! See! C# ROCKS~!
What I've come up with is a program that perfectly mimics what I get from the Quantas online air ticket reservation system. Oh, did I mention that I'm flying with Singapore air?
The project is a very simple console application that demonstrates the use of:

[attachurl=#]

It should also prove just how fast and productive C# is, because you can create an entire online air ticket booking system in only a few minutes and in less than 100 lines of code! See! C# ROCKS~!

What I've come up with is a program that perfectly mimics what I get from the Quantas online air ticket reservation system. Oh, did I mention that I'm flying with Singapore air?

The project is a very simple console application that demonstrates the use of:
- while
- WriteLine
- ReadLine
- if... then... else...
- string.ToLower()
- string.Substring(startAtIndex, length)
- the "+=" addition operator
Code: (csharp)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ReserveQuantasTickets
{
class Program
{
static void Main(string[] args)
{
int price = 450;
while (true) // This perfectly mimics the functionality of the Quantas online ticket reservation system.
{
Console.WriteLine("********************************************************");
Console.WriteLine("******** Welcome to Quantas flight booking *************");
Console.WriteLine("********************************************************");
Console.WriteLine("Please enter your name the press Enter."); // User-friendly communications
if (UserIsFedUp()) break; // Notice that we don't actually store the name as it is unimportant.
Console.WriteLine("Please enter your point of departure.");
if (UserIsFedUp()) break; // Notice that the departure point is also unimportant.
Console.WriteLine("Please enter your destination.");
if (UserIsFedUp()) break; // Notice that the destination is also unimportant.
Console.WriteLine("Please enter your departure date.");
if (UserIsFedUp()) break; // Notice that the departure date is also unimportant.
Console.WriteLine("Please enter your return date.");
if (UserIsFedUp()) break; // Notice that the return date is also unimportant.
Console.WriteLine("Please enter your departure date.");
if (UserIsFedUp()) break; // Notice that the departure date is also unimportant.
Console.WriteLine(string.Format("Your tickets will cost: {0}", price+=50)); // Notice that we don't care about anything other than increasing the price.
Console.WriteLine("Press Enter to proceed to payment...");
if (UserIsFedUp()) break;
// The following is the actual error from the Quantas web site.
Console.WriteLine("Please review the following items");
Console.WriteLine("* We are unable to confirm the fare for the flights you have selected. Please cancel these segments and choose a different fare or flights and resubmit your confirmation request. (15012)");
Console.WriteLine("Press Enter to \"Start over\"");
if (UserIsFedUp()) break;
}
}
private static bool UserIsFedUp() // Notice that this is static.
{
if (Console.ReadLine().ToLower().Substring(0, 8) == "expletive") // Make sure to allow for exclamation marks.
{
return true;
}
else
{
return false;
}
}
}
}
[attachurl=#]




























I meant more of the difference between options, for example. It isn't like a typical text editor w/ some IDE-like facilities (nor should it be). You don't just start it and start typing. You have to set up a project, you have to define what kind of project it is (windows service, MVC, MVC2, etc.), you need to choose the language you will program in (VB vs. C#, etc), all before you even begin to think about typing code. Once that is all set (which I don't even know the difference between most of these option or when and why to choose one over another), you then have a huge structure of folders and files that, though empty, exist for who knows what purpose(s). Once everything is set up, or when editing previous code where these options are already set, I find VS a dream to work with (mostly - still have trouble wrapping my head around the code-behind paradigm), especially for refactoring, intellisense, and code completion; but getting to that point for new projects always stumps me. Moreover, I don't know what I don't know, so using a tool "when I need to learn it" means I need to know it exists in the first place, which just isn't true. That said, I do a LOT of web page design and updates using Visual Studio at work, so I do know a little about the interface, just not how to use most of it, or - as I already said - many (read most) of the potential functionality. In the end, I always feel I am just "doing it the hard way" because I don't know of anything else.