String.Format takes at least one String and returns a different String. It doesn't need to modify the format string in order to return another string, so it makes little sense to do that (ignoring your formatting of it). On the other hand, it wouldn't be that much of a stretch to make String.Format be a member function, except I don't think C# allows for const member functions like C++ does. [Please correct me and this post if it does.]