たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LINQ 探索 #2

#445
すでに 2 回目にして LINQ からやや離れているが、C#3.0 探索と変換願います。

今回の疑問 : null になっているオブジェクトからでも拡張メソッドを NullReferenceException 例外が発生することもなく呼び出せるか?

C# 言語仕様なり MSDN Library なり探せば出るのだろうが、簡単に検証できそうなのでやっぱり VSTS2008 Beta2 (VPC) 上で実験してみる。

using System;
using System.Collections.Generic;

static class Program
{
  static void Main()
  {
    IEnumerable<int> source = null;
    Console.WriteLine(source.Any());
  }

  static bool Any<T>(this IEnumerable<T> source)
  {
    if (source != null)
    {
      using (var enumerator = source.GetEnumerator())
      {
        if (enumerator.MoveNext())
          return true;
      }
    }
    return false;
  }
}

で Ctrl + F5 をしてやると、
False
Press any key to continue . . .

となり、null でも動いてくれることがわかる。
ちなみに System.Linq 名前空間をインポートして、自分でかいた Any メソッドをコメントアウトしてやると、ArgumentNullException 例外が発生する。
スポンサーサイト

Office 2007 Service Pack 1

#444
そういえば、と思ってよく見てみたら IME の件SP1 に含まれていたんですね。

About IME 2007

Vista マシンになって以降 IME の問題をあんまり感じてなかったから、改善具合は分からないが…。

LINQ 探索 #1

#443
let 句がいまいち分からないので VSTS2008 Beta2 (VPC) 上で実験してみた。
let 句のサンプルの
string[] strings =
{
  "A penny saved is a penny earned.",
  "The early bird catches the worm.",
  "The pen is mightier than the sword."
};

// 母音で始まる単語を抽出
var query = from sentence in strings
  let words = sentence.Split(' ')
  from word in words
  let c = char.ToLower(word[0])
  where c == 'a' ||
    c == 'i' || c == 'u' || c == 'e' || c == 'o'
  select word;

を Debug モードでコンパイル、逆アセンブルして意訳 (匿名型、ラムダ式を適用) 。[続きを読む]

2月8日が待ち遠しい

#442
さあきたぞ、VS2008 日本語版だ!

Microsoft(R) Visual Studio(R) 2008 日本語版の開発を完了、完成版の提供を開始

アカデミックは再び、Professional Edition 相当になったぞい!
Professional Edition には VSTO が統合されているので、Office アプリも開発できる、と。

その分、税別 12,800 円と高くなってしまったのはトレードオフか・・・。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。