rksoftware

Visual Studio とか C# とかが好きです

C# Dev Kit がリリースされたので見ていきます その 8

C# Dev Kit がリリースされたので見ていこうと思います。 C# Dev Kit はこちら。
前回の記事はこちら。 前後の記事の全部まとめはこちら。 https://rksoftware.hatenablog.com/entry/2023/10/21/140000

■ コードの提案

IntelliCode という機能でよかったでしたっけ? コードを書き始めると 「あなたは次、こういうコードを書くッ!」 とコードを提案してくれる機能。Visual Studio のアレ、とてもいいですよね。コードをタイプする量が激減する素晴らしい機能です。今書いているプログラミング言語にまだ不慣れな方もスムーズにコードを書き進められる素晴らしい機能です。
今回はこの機能が Visual Studio Code + C# Dev Kit でどうなるか、試してみましょう。

■ IntelliCode for C# Dev Kit

今回試すこの機能、「 IntelliCode for C# Dev Kit 」という Visual Studio Code の拡張機能で実現されているのでしょう。C# Dev Kit のインストールを確認したときに、C# Dev Kit をインストールしただけで同時に入ったあの拡張です。

■ 今回試してみるコード

早速試していこうと思います。今回試すコードはこちらです。

int[] array = new int[] { 1, 2, 3 };
List<int> list = new List<int>();
for(int i = 0; i < array.Length; i++)
    list.Add(array[i]);

このコードを提案してもらいながら書いてみます。

■ Visual Studio の場合

まずは前回同様、Visual Studio の場合を見てみます。

  1. 型を書いて変数名を書くと、変数名とその後の値の生成まで提案してくれます。
  2. 型名を書き始めると、使いたいであろう型を提案してくれます。
  3. List<T> の変数を作ったらその変数に対して行うであろうことを提案してくれます。素晴らしいです。残念ながら今回に限っては書きたいことが違いましたけれども、それは今回に限っての話です。
  4. for を書き始めると、初期処理を提案してくれます。
  5. その次は終了条件とループ毎回の処理も提案です。ほとんどコードを書かずに進んでいきます。
  6. for が書き終わったら、for の中身の提案です。完璧な提案です。素晴らしい。

  7. これが完成コードです。ほとんどタイプせずに書き終わりました。
    ※このコードの良し悪しは別として。 ※コード改善提案は 前回確認している ので見てください。

■ C# Dev Kit の場合

いよいよ C# Dev Kit の出番です。

  1. [ × ] Visual Studio では型を書いて変数名を書くと、変数名とその後の値の生成まで提案してくれました。C# Dev Kit ではそこまではまだのようです。
  2. [ ○ ] Visual Studio では型名を書き始めると、使いたいであろう型を提案してくれました。C# Dev Kit でもやってくれます、ステキ!

    また、Visual Studio では変数名を書いただけで全部やってくれたので必要ありませんでしたが、new の後に続く型名は提案してくれました。ナイス!
  3. [ × ] Visual Studio では List<T> の変数を作ったらその変数に対して行うであろうことを提案してくれました。C# Dev Kit ではそこまではまだのようです。
  4. [ × ] Visual Studio では for を書き始めると、初期処理を提案してくれました。C# Dev Kit ではそこまではまだのようです。
  5. [ △ ] その後の終了条件とループ毎回の処理も提案もまだのようですが、変数を書けば使うであろうプロパティ等の提案は OK です。グレイト!
  6. [ × ] Visual Studio では for が書き終わったら、for の中身の提案してくれましたが。C# Dev Kit ではそこまではまだのようです。
    ちなみに終了条件は手でタイプしましたが手癖が出てしまって Visual Studio のおすすめコードと違う書き方をしてしまいました......。

    ただ、for の中身を書く時も、使うだろうメソッドは提案してくれたので、ここはクール!

    メソッドの引数はもう少しな結果でしたがよいでしょう。
  7. これが完成コードです。Visual Studio と比べたらタイプ量は多かったですが、十分じゃないでしょうか? Visual Studio がすごすぎるだけです。

■ コード比較

比較する必要もないのですが、Visual Studio と C# Dev Kit で出来上がったコードです。C# Dev Kit では私が手癖で Visual Studio と違うスタイルで書いてしまった場所や、フォーマッタをまだ聞かせていない部分もありますが、完全に一致ではないでしょうか? 素晴らしいですね。

int[] array = new int[] { 1, 2, 3 };
List<int> list = new List<int>();
for(int i=0;i<array.Length;++i)
  list.Add(array[i]);
int[] array = new int[] { 1, 2, 3 };
List<int> list = new List<int>();
for(int i = 0; i < array.Length; i++)
    list.Add(array[i]);

■ 次回

次回はいよいよライセンスの適用についてみてみましょう。