Lambert on Development

My thoughts on software development

Lambert on Development RSS Feed
 
 
 
 

Overload ToString() to make debugging easier

Debugging

Image by TaranRampersad via Flickr

When you’re debugging code in Visual Studio, you’re going to end up setting breakpoints, watching variables, and maybe dumping information to a log file or the immediate window.  Wouldn’t it be nice if you could read some of it?

Too often, we wait until we’re writing a log entry or trying to peer into the contents of a watched variable to worry about formatting objects.  If you find yourself looking at a particular object or structure more than a couple times, though, consider overloading the ToString() method on that object.  After all, nothing should be better suited to present a default format for an object than the object itself.  Instantly, you’ll find that logging and debugging become easier, because when you hover over an instance of that object, you’re going to see a meaningful representation of the object.

In this example, you can see that I’m showing some properties and ignoring others – not all of that detail is needed to identify this object, and we’re not trying to serialize it, after all, but if I ever wanted to change this, I’d have one method to update.


class ParamInfo
{
public String Name {get; set;}
public Boolean IsOutputParameter { get; set;}
public String TypeName { get; set; }
public Int32 Size { get; set; }
public Int32 Precision { get; set; }
public Int32 Scale { get; set; }

/// <summary>
/// Improve formatting for logging.
/// </summary>
/// <returns></returns>
public override string ToString()
{
return String.Format("Parameter name=[{0}], type=[{1}]", this.Name, this.TypeName);
}
}

Here’s another example where I’m using this technique.

Reblog this post [with Zemanta]

Post to Twitter Tweet This Post

  • good technique. i'll try at home. thanks
blog comments powered by Disqus

Similar Posts

Google Reader

Blogroll

Blog Directories

 
Programming Blogs - Blog Catalog Blog Directory
 
Computers Blogs - Blog Top Sites
 
Banner
 
Lambert on Development - Blogged

Recent Posts

Popular Posts

Support this Site

Featured Articles

Lijit Search

Lijit Search