予測不可能な決定系

決定論的なのに予測が不可能……つまり, そういうことだよ

文字列とかの話

下記のコードの出力は何か?
という問題に答えられなかったorz

static void Main()
{
    string a = "abc";
    Test(a);
    Console.WriteLine(a);
}
static void Test(string b)
{
    b = b + "def";
}

下記参照の解説や等価な表現を見れば理解は出きるけど,
パっと答えられないあたりがダメすぎる.

こんなことでバグなんて出さないように気をつけましょう(自分)


あと,こんな問題も出された.

static void Main()
{
    string a = null;
    string b = null;
    string c = a + b;
    Console.WriteLine(c.Length);
}

これも間違えた(例外出ると思った)けど,
この出力は「0」が返ってくる.

どうやら文字列連結において null は空文字として処理されるらしい.

ちょっとした豆知識でした.


【参照】
http://jikkenjo.net/820.html

http://msdn.microsoft.com/ja-jp/library/vstudio/ms228504.aspx