As far as I know, string
is just an alias for System.String
, and similar aliases exist for bool
, object
, int
... the only subtle difference is that you can use string
without a "using System;
" directive, while String requires it (otherwise you should specify System.String
in full).
About which is the best to use, I guess it's a matter of taste. Personally I prefer string
, but I it's not a religious issue.