Example (note the case):
string s = \"Hello world!\";
String s = \"Hello world!\";
What are
string is an alias in C# for System.String.
So technically, there is no difference. It's like int vs. System.Int32.
As far as guidelines, it's generally recommended to use string
any time you're referring to an object.
e.g.
string place = "world";
Likewise, I think it's generally recommended to use String
if you need to refer specifically to the class.
e.g.
string greet = String.Format("Hello {0}!", place);
It appears that the guidance in this area may have changed, as StyleCop now enforces the use of the C# specific aliases.