@@ -42,8 +42,8 @@ There are more [examples below](#examples).
4242An easier, quicker way to add columns is to invoke ` AddColumns() ` . By passing an array of column names all columns can be specified in one call:
4343
4444``` c#
45- var table = new Table ();
46- table .AddColumns (new [] { " No." , " Name" , " Position" , " ^Salary^" })
45+ var table = new Table ()
46+ .AddColumns (new [] { " No." , " Name" , " Position" , " ^Salary^" })
4747 .AddRow (1 , " Bill Gates" , " Founder Microsoft" , 10000 )
4848 // etc...
4949 ```
@@ -117,8 +117,8 @@ public class CurrencyTypeHandler : ITypeHandler
117117So when we then specify our values as decimals (by adding the `m `- suffix ).. .
118118
119119```c #
120- var table = new Table ();
121- table .AddColumns (new [] { " No." , " Name" , " Position" , " ^Salary^" })
120+ var table = new Table ()
121+ .AddColumns (new [] { " No." , " Name" , " Position" , " ^Salary^" })
122122 .AddRow (1 , " Bill Gates" , " Founder Microsoft" , 10000 m )
123123 // etc ...
124124 ```
@@ -163,11 +163,16 @@ And still shorter:
163163```c #
164164tablebuilder .TypeHandlers .AddHandler <decimal >((value , formatProvider ) => string .Format (" $ {0:N2}" , value ));
165165```
166+ And instead of the `TypeHandlers ` property we can also use the `AddTypeHandler ()` method :
167+
168+ ```c #
169+ tablebuilder .AddTypeHandler <decimal >((value , formatProvider ) => string .Format (" $ {0:N2}" , value ));
170+ ```
166171
167172And for those about to point out this can be written even shorter :
168173
169174```c #
170- tablebuilder .TypeHandlers . AddHandler <decimal >((v , _ ) => $" $ {v : N2 }" );
175+ tablebuilder .AddTypeHandler <decimal >((v , _ ) => $" $ {v : N2 }" );
171176```
172177
173178A `TypeHandler ` can also be passed to a `Column `'s constructor, in which case that `TypeHandler` is used for all values in that column.
@@ -200,8 +205,8 @@ var persons = new[]
200205By default the TextTableBuilder outputs properties of objects in alfabetical order ; for our example that just happens to work out :
201206
202207```c #
203- var table = new Table ();
204- table .AddColumns (new [] { " Name" , " Position" , " ^Salary^" })
208+ var table = new Table ()
209+ .AddColumns (new [] { " Name" , " Position" , " ^Salary^" })
205210 .AddRows (persons );
206211
207212var tablebuilder = new TableBuilder ();
@@ -230,13 +235,18 @@ public class PersonHandler : IObjectHandler
230235After that , building a table for this data is simple :
231236
232237```c #
233- var table = new Table ();
234- table .AddColumns (new [] { " Name" , " Position" , " ^Salary^" })
238+ var table = new Table ()
239+ .AddColumns (new [] { " Name" , " Position" , " ^Salary^" })
235240 .AddRows (persons );
236241
237242var tablebuilder = new TableBuilder ();
243+
238244// Specify object handler to use for persons
239245tablebuilder .ObjectHandlers .AddHandler <Person >(new PersonHandler ());
246+ // Or, alternatively:
247+ tablebuilder .AddObjectHandler <Person >(new PersonHandler ());
248+
249+
240250Console .WriteLine (tablebuilder .Build (table ));
241251```
242252
@@ -272,7 +282,7 @@ tablebuilder.ObjectHandlers.AddHandler<Person>(new DelegatingObjectHandler<decim
272282Still shorter :
273283
274284```c #
275- tablebuilder .ObjectHandlers . AddHandler <Person >((person , columnCount ) => new object [] { person .Name , person .Position , person .Salary });
285+ tablebuilder .AddObjectHandler <Person >((person , columnCount ) => new object [] { person .Name , person .Position , person .Salary });
276286```
277287
278288When no handler for a specific object can be found then the `DefaultObjectHandler ` is used which simply takes all readable properties and returns those in alfabetical order unless ...
@@ -315,8 +325,8 @@ var persons = new[]
315325 // etc ...
316326 };
317327
318- var table = new Table ();
319- table .AddColumns (new [] { " Position" , " Name" , " ^Salary^" })
328+ var table = new Table ()
329+ .AddColumns (new [] { " Position" , " Name" , " ^Salary^" })
320330 .AddRows (persons );
321331
322332var tablebuilder = new TableBuilder ();
@@ -339,12 +349,12 @@ Note the DateOfBirth column is missing; this is because the `DefaultObjectHandle
339349However , if we print the table like this :
340350
341351```c #
342- var table = new Table ();
343- table .AddColumns (new [] { " Position" , " Name" , " ^Salary^" , " Birthdate" , " Alma mater" , " Spouse" })
352+ var table = new Table ()
353+ .AddColumns (new [] { " Position" , " Name" , " ^Salary^" , " Birthdate" , " Alma mater" , " Spouse" })
344354 .AddRows (persons );
345355
346356var tablebuilder = new TableBuilder ();
347- tablebuilder .TypeHandlers . AddHandler <DateTime >(new DelegatingTypeHandler <DateTime >((date , formatprovider ) => $" {date : yyyy - MM - dd }" ));
357+ tablebuilder .AddTypeHandler <DateTime >(new DelegatingTypeHandler <DateTime >((date , formatprovider ) => $" {date : yyyy - MM - dd }" ));
348358Console .WriteLine (tablebuilder .Build (table ));
349359```
350360
@@ -494,11 +504,10 @@ var table = new Table()
494504 .AddColumns (new [] { " Name" , " Position" , " ^Salary^" })
495505 .AddRows (DBContext .Persons .Where (p => p .Salary > 100 ));
496506
497- var tablebuilder = new TableBuilder ();
498- // Specify object handler to use for persons
499- tablebuilder .ObjectHandlers .AddHandler <Person >(
500- (person , columnCount ) => new object [] { person .Name , person .Position , person .Salary }
501- );
507+ var tablebuilder = new TableBuilder ()
508+ .AddObjectHandler <Person >( // Specify object handler to use for persons
509+ (person , columnCount ) => new object [] { person .Name , person .Position , person .Salary }
510+ );
502511Console .WriteLine (tablebuilder .Build (table ));
503512```
504513
0 commit comments