Daniel Cazzulino's Blog : MakePascal identifier (the XmlSerializer way)

Subscriptions

News

Source code published in this blog is public domain unless otherwise specified.

 

kzu in LinkedIn

  Microsoft MVP Profile

 Contact

Post Categories

MakePascal identifier (the XmlSerializer way)

In a previous post, I proposed an implementation of a simple method to make the first letter of an identifier uppercase, to get a pseudo PascalCase from an xml name. I've found that a better and more consistent way is to reuse the method used by the XmlSerializer to build the code identifiers, which is System.Xml.Serialization.CodeIdentifier.MakePascal(string identifier)

The class also exposes MakeValid and MakeCamel methods, which are usefull too. MakeValid is automatically called by the other two.

The pascal casing implementation is the following (reflectoring - that is, using Reflector):

public static string MakePascal(string identifier)
{ 
  char ch1;
  identifier = CodeIdentifier.MakeValid(identifier);
  if (identifier.Length 

Using the ToCharArray() approach looks to me like a little more efficient string handling. The code above, near the end concatenates two strings, building a third one which is returned. If it used something like the following, it would save those two temporary strings:

  if (char.IsLower(identifier.Chars[0]))
  {
    Char[] letters = identifier.ToCharArray();
    letters[0] = Char.ToUpper( letters[0] );
    return new string( letters );
  }
}

By the way, it looks like readers' concerns with regards to I18N are non-issues, as the .NET class uses the same approach I showed, basically making a unicode Char uppercase. Finally, note that this is not actually PascalCase, but only FirstLetterUpperCase, although such a method name wouldn't be cool at all...

posted on Friday, January 16, 2004 10:47 AM by kzu