こちらの記事から
bool dat = (bool:TextToBoolConverter)file[0];
こんな構文ないけど、型変換演算子のオーバーロードで、ほぼ同等ことができるのでは?ということで作ってみました。
他の主要な組み込み型についてもT4を使ってさくっと作れます。
(個人的にはToBoolean()みたいな拡張メソッドの方が使いやすいと思いますが。(インテリセンス使えますし))
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StringUtility;
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
var x = (bool)(StringCaster)"true";
var y = (bool)(StringCaster)"FALSE";
var z = (bool)(StringCaster)"TRUE";
byte a = (StringCaster)"255";
short b = (StringCaster)"-1000";
ushort c = (StringCaster)"32768";
int d = (StringCaster)"-99999999";
uint e = (StringCaster)"2147483648";
long f = (StringCaster)"-2";
ulong g = (StringCaster)"9223372036854775808";
float h = (StringCaster)"3.14";
double i = (StringCaster)"6.02e-23";
decimal j = (StringCaster)"1.4142";
DateTime k = (StringCaster)"2013/08/22 18:30:25";
bool l = (StringCaster)"TRUE";
Console.WriteLine(x);
Console.WriteLine(y);
Console.WriteLine(z);
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
Console.WriteLine(e);
Console.WriteLine(f);
Console.WriteLine(g);
Console.WriteLine(h);
Console.WriteLine(i);
Console.WriteLine(j);
Console.WriteLine(k);
Console.WriteLine(l);
Console.Read();
}
}
}