C# + VS IDEで、例えばBigIntegerを使う時に、
System.Numerics.BigInteger hoge = System.Numerics.BigInteger.Parse(@"42");
とか書くじゃん?>< 整数リテラルだとInt32だと思っちゃうから><
そのせいで例えば
BigInteger.Parse(@"><");
とか書いても静的検査されないじゃん?><
で、思ったんだけど、VS IDE用に「引数がリテラルである場合のみ静的検査する属性」ってあったらおもしろいと思うんだけど無理なのかな?><(つまりこの例だとParse(にその属性がついているとして)を実際に実行してみて例外が出るのかIDEが書いてるそばから試してくれるみたいなの><)

これ、公式の機能じゃなくてもVSのアドオンとして作れないのかな?><

フォロー

長い>< 

さらに暗黙の型変換と組み合わせて、
BigNantokaInt hoge = "123";//(実際は123じゃんなすごく巨大な数値だとする)
って書くと、BigNantokaInt のstringからの暗黙の型変換の宣言にその属性がついていたら、BigNantokaIntに実際にキャストできるか検査させて、「無理!」って例外が出たらIDEで警告出すみたいなの><
さらに、暗黙の型変換はリテラルからのみ受け入れたいって追加属性もつけると、
void Hoge(string fuga)
{
BigNantokaInt hoge = fuga;
}
みたいに書くと、同様にチェックする時に「いや、暗黙の型変換はは組み込み型みたいに使うためにつけただけなので、それだと実行時まで検査できなくてどうなるかわかんないじゃん・・・」って警告が出るようにするとか><(でもビルドは通すみたいな)

これが出来るようになったら、自分で好きな型で、好きなリテラル形式で(互換性の為に " で囲ってC# 的には文字列として)記述しても、IDEで静的に検査できるじゃん?>< 超便利じゃん?><(既にそういうアドオンあったりしないのかな?><)

つまり、BigInteger hoge="42"; って書けるようにした上で BigInteger hoge="42.195";とかはIDEが怒ってくれて、さらに BigInteger hoge=(string)fuga; って書くとIDEが「そうする為にそうなってるんじゃないんだけど・・・」って言ってくれる・・・なんかそういうの><(語彙)

ログインして会話に参加
:realtek:

思考の /dev/null