
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
96
|
Chapter 3: Classes and Structures
Using the IFormattable interface forces you to implement the
IFormattable.ToString method to more effectively display your type’s
value(s). However, you do not have to implement it, as you can see for
yourself by removing this interface from the
Line structure’s declara-
tion. For performance’s sake, it is best to not implement this interface
on structures, due to the cost of boxing the structure; however, this
needs to be weighed with the design of the type. Implementing this
interface on a class does not incur a performance penalty.
See Also
See Recipe 2.16; see the “IFormatProvider Interface” topic in the MSDN
documentation.
3.3 Converting a String Representation of an Object
into an Actual Object
Problem
You need a way of accepting a string containing a textual representation of an object
and converting it to an object usable by your application. For example, if you were
provided with the string representation of a line
(x1, y1)(x2, y2), you would want
to convert it into a
Line structure.
Solution
Implement a Parse method on your Line structure:
using System;
using System.Text;
using System.Text.RegularExpressions;
public struct Line : IFormattable
{
public Line(int startX, int startY, int endX, int endY)
{
x1 = startX;
x2 = endX;
y1 = startY;
y2 = endY; ...