You can fart around with .NET, but honestly, if you really want to make a game, you have to learn C++. Blit Operations in .NET would be horribly slow and you won't make anything of professional type quality, and you will probably just get frustrated and resign the idea.
XNA is probably a better choice if you have to use .NET, but even still I think your best bet is C++.
Pointers are NOT that hard to learn. All they are is a variable (32 bit in 32 bit os, or 64 bit in 64 bit os) which holds a number. That number just happens to be a location in memory.
For example, if you have 1k of ram, you have a space in memory:
1 ----------------------------------------------------------------- 1024
If you have "Hello there", in location 500.
1 ----------------------"Hello There" ---------------------- 1024
The pointer points to 500. The pointer does not contain "Hello There". But with that pointer, you can read the bytes out of there and get "Hello There". Thats called dereferencing the pointer.
If the pointer is not used, it has to be initialized to 0 (null) which indicates its not used.
Alot of commands that do things like create a character string, return a pointer where it created the location in memory for you to use. Since you specify the size in code (50 characters) it assumes you know to only fill it 50 characters, so it only gives you the starting address.
Thats very basic pointer tutorial.
It wasn't so scary.
Pointers are very powerful for doing certain operations, especially things done in video games. Thats why C++ code runs much faster and coding would be easier once you get over the learning curve.