トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

C#/Parse

一部の情報は非常に古いもの(20年以上前〜)ですので、利用する際はご注意ください(Java 1.4 とか .NET 1.0 とか、Windows 2000 とか)
お問い合せは wiki@shise.net まで。Gmail に転送されるので、スパムは全部カットされます。


 

概要

C# には Parse とかいうメソッドがいろんなデータを示すクラス・構造体に実装されている。
が、それがどんな風に変換されるのか、いまいち分からなかったので実験してみた。

ちなみに、ここで表記するエラーとは例外(Exception)の事を指す。

目次


bool型

変換前 変換後
True True
tRue True
False False
false False
foooooo エラー
truetrue エラー
[空白]true[空白] True

つまり、bool の Parse は以下のようなコードだと考えられる。

public bool Parse(string s)
{
    s = s.Trim().ToLower();
    switch(s)
    {
        case "true":return true;
        case "false":return false;
        default:throw new Exception();
    }
}

DateTime型

変換前 変換後
2005/10/10 2005/10/10 0:00:00
12:30 2005/11/08 12:30:00
12:3 2005/11/08 12:03:00
11-11 2005/11/11 0:00:00
05 04 2005/05/04 0:00:00
05 04 03 2005/04/03 0:00:00
2005+11-08 2005/11/08 0:00:00
11/8/2005 2005/11/08 0:00:00
05:10:10 2005/11/08 5:10:10
2005:10:10 エラー

このテストを行った日は2005/11/08である。
見て分かるように、年、月、日の区切り文字は空白やハイフンなどいろいろなものがつかえる。また混在しても問題ないようだ。
ただし、:(コロン)を使うと必ず時間として解釈され、日付の指定が無い場合は現在の日付が使用されるようだ。