Most of the primitive types in the CLR have a Parse method that takes a string and parses it into its own data type. I could be DateTime.Parse(string) or Int.Parse(string) etc. It’s a great way of doing late binding and adds another layer of flexibility to your code.
In ASP.NET you can parse strings as controls and add them to the page or GridView or any other control. It basically means that you can late bind the different controls of a page. Imaging having all the different types of controls you want to use in a predefined XML file and then load them dynamically. Then you only have to change the look and feel of them in one place.
In this example I parse a simple <div> tag and give it an ID so that it can be found in the controls collection.
Control div = ParseControl("<div>Some custom control</div>");
div.ID = "div";
// Find the control by its ID
Control control = FindControl("div");
You can also parse server controls, but they don’t need an ID if you add the attribute yourself.>
ParseControl("<asp:textbox runat=\"Server\" id=\"txtName\" />");
The ParseControl method can be used to create some extraordinary flexible and extendable web applications if it is used correctly. It could easily become difficult to maintain a website with too many dynamically added controls, if it’s not well thought through so be careful.