C# is a language which is used together with the CLR.
string
is a type in C#.
System.String
is a type in the CLR.
When you use C# together with the CLR string
will be mapped to System.String
.
Theoretically, you could implement a C#-compiler that generated Java bytecode. A sensible implementation of this compiler would probably map string
to java.lang.String
in order to interoperate with the Java runtime library.