There are multiple interesting names associated with CultureInfo and related objects, which could be a little bit confusing. I've listed the name used in a constructor and the names returned by CultureInfo/CompareInfo in the table below:
0x0c00 (if user default)
en-US (if specified sort is en-US)
CultureInfo.ToString() returns the string that was used in the CultureInfo constructor, so its great to use if you want to make another CultureInfo exactly the same as the original.
CultureInfo.Name returns the name of the culture, excluding any sorting modifiers. This is good for identifying cultures.
CultureInfo.CompareInfo.Name returns the identifier for the sort. In the case of a custom culture (supplemental), this name could be completely unrelated to the culture.
RegionInfo objects have much simpler names
For RegionInfo the .ToString() and .Name are the same. Note that RegionInfo objects can be constructed with a full culture name, which is the recommended method of construction. If a user overrides en-US or creates an es-US, it may be preferable to have the specific region information associated with that culture. If only a region name is provided, then the culture data that is used to create that region will come from the default tables shipped with the .Net Framework, which may not include windows only or custom cultures.