一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • JavaとC#の違いに苦労

私がJava(経験10数年)とC#(経験1年程度)で戸惑った内容です。
特に驚いた違いとしては、ラムダ式とLinqの違いです。
記述方法が似ていたので、同じようなものだと思っていたので、、、
簡単な例になります。
【Java】
List<int> list = Arrays.asList(1, 2, 3);
int ret = 0;
list.forEach(s -> {
ret += s;
System.out.println(ret);
});
⇒ラムダ式の外にある変数に代入したくなるが,できない。
ラムダ式はコンパイルするとprivate staticなメソッドとして置き換わるため,変数への代入は出来ないとのこと。

【C#】
List<int> list = new List<int>(1, 2, 3);
int ret = 0;
list.Foreach(s => {
ret += s;
Console.WriteLine(ret);
});
⇒Linqの外にある変数にも代入できる。

言語の違いになれるまでまだまだ勉強の日々です。

The following two tabs change content below.

関根 弘行

最新記事 by 関根 弘行 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア