True that in today's world of IDEs, you'd want the IDE. But also good to know the traditional/core method of compilation (for C#, C++, and Java).
I haven't used Selenium in C#, but what the OP has executed for compilation looks correct in general. With the command line method, you add references as compile parameters just as the OP did.
The caveat, that I hope the OP has addressed is that even after compiling, you need to be sure the executable is able to reference the Selenium DLLs. I believe the compile time reference does not tell the executable where to find the DLL after it's compiled and executed. With an IDE, the IDE takes care of that (usually placinga copy of the DLL in your bin folder with the executable). Similarly, with the command line method, you need to place a copy of those DLLs where the executable is. The easy way to compile is to have all the source files and DLLs in a single location and compile with references from there so you have everything in one place. I believe .NET assemblies/executables find DLLs in the following locations (forget order precedence): local path of executable, the .NET Global Assembly Cache (GAC).
Also, if one is avoiding use of the VS IDE because it's bloated (I feel even the free Express edition is bloated), you can find a free lighter version of a .NET IDE in SharpDevelop (and there's also MonoDevelop).