質問: 初心者です。 C#は静的言語でありながら動的言語のように開発できるのが魅力とよく聞きますが、どういう意味なのかよく理解できません。 簡単に教えていただけますでしょうか?
回答: 「動的言語のように」というのが何を指しているのか、解釈にちょっと主観が入りますが...。 C#にはコードをスクリプト的に実行するような機能だとか、ReflectionやDynamic型のように動的に型付けをする仕組みなどもあるにはありますが、 おそらくリンク先の記事のように「動的言語のように開発できる」といった場合、単純に、柔軟な書き方ができるという程度の意味ではないかと思います。 そういう意味で、動的言語っぽいなと思える書き方には以下のようなものがあります。 * 暗黙の型指定 var ``` var text = "hoge"; //string型 var num = 123; //int型 ``` * 匿名クラス ``` //classを定義しなくてもいきなり↓のように書ける var person = new { Name = "tanaka", Age = 20 }; Console.WriteLine(person.Name); //tanaka ``` * 匿名メソッド ``` Func sum = (n1, n2) => n1 + n2; var result = sum(1, 2); // 3 ``` * LINQ(関数型っぽい) ``` //1~10のうち、偶数だけを抽出して2倍した値を出力 Enumerable.Range(1, 10) .Where(n => n % 2 == 0) .Select(n => n * 2) .ToList() .ForEach(r => Console.WriteLine(r)); ```