You may ask what is the purpose of this post. The title seems really confusing indicating that i may have used the same word twice and trying to explain the difference between it. The thing is these are two different things. One if the native class string and the other is the class object provided by the framework called String. Basically there is no difference in them as far as the functionality is concerned but when it comes to coding convention then if you want to declare any string value you should use the class ‘string’ to declare it but if you want to use any functionality from the string class the you should use the class ‘String’ which is also the class the object the static class through which you class access method like concat or Parse.