In my C# mode, M-b and M-f are bound to {backward,forward}-word.
But these things stop at underscores, which I use sometimes as a prefix on member variables.
As huaiyuan mentioned, you ned to modify your syntax table. That said, what he posted modifies the current table...
Each language has a syntax table, e.g. For c++, you could do
(modify-syntax-entry ?_ "w" c++-mode-syntax-table)
I don't know what "your c# mode" uses, but a quick M-x apropos
with a look up of syntax-table
should help you find out...