Inlining is when instead of calling a particular function, the contents of the function are done directly at the call site. The main reason for doing this is that it removes the overhead of calling a function by running the function contents at the callsite.
It is used as an optimization technique. In the case of C#, it actually depends on the CLR JIT engine to do the work. At runtime, when compiling a method, the JIT engine will use a heuristic to determine if a function inline is appropriate and will be an effictive optimization. If so, an inline is performed.
Vance has a great article on what the JIT considers when inlining: http://blogs.msdn.com/vancem/archive/2008/08/19/to-inline-or-not-to-inline-that-is-the-question.aspx
There is no way to force an inline in C#. The language does not support this construct. Mainly because people are very poor judges of what should be optimized. The JITer is a much better judge.