Why is it that most of the commonly used simple data types in the .NET framework have a default constructor, but the System.String doesn't? That makes it terribly inconvenient to use with late-binding in a declarative code situation, where you are doing an Assembly.CreateInstance() call to instantiate a variable, especially an interface-typed variable, where you want to read the specific type name from config. Other types such as the Int32, Double, and DateTime all do. This really sucks. There really is no reason why it couldn't have a default constructor. After all, it would be a profoundly simple matter to have such a constructor--the only thing the code would need do is to initialize the internal char array to an empty array (or maybe just set itself to String.Empty). Bjarne Stroustrup, where are you when I need you? Yes, yes. I know that a string is immutable, so someone might argue that this is pointless. However, if my intent is to late-bind all manner of common types, and I can't do this with such a common type as System.String, then I have to do ugly stuff like if-else ladders, or switch (Select Case) statements to accommodate this variance from the norm. I have not found any other means to create an instance of a variable from the string data type name. If someone knows this and would like to share, please do so. But for now, my quibble stands.