読者です 読者をやめる 読者になる 読者になる

1.21 jigowatts

Great Scott!

Visual Studio Code でC#のコードを書いて実行してみる!

C# Mac Visual Studio Code

概要
とりあえずC#のコードを書いてみましょうということで、簡単なコンソールアプリでHello World!

環境

OS X EI Capitan バージョン 10.11.4
Visual Studio Code バージョン 1.0.0
dnvm(.NET Version Manager) - Version 1.0.0-rc2-15546
ランタイムはmonoで1.0.0-rc1-update2

$ dnvm list
Active Version              Runtime Architecture OperatingSystem Alias
------ -------              ------- ------------ --------------- -----
       1.0.0-beta4          mono                 linux/osx       
       1.0.0-beta6          mono                 linux/osx       
       1.0.0-rc1-update2    coreclr x64          darwin          
  *    1.0.0-rc1-update2    mono                 linux/osx       default

拡張機能C#のインストール

C# programming with Visual Studio Code
これを見るとC#のサポートはオプションなので(Preview版ではそんなことなかったような気が)拡張機能としてインストールしておきます。
f:id:sh_yoshida:20160422071807p:plain
C# | Visual Studio Marketplace

実装

適当な場所にディレクトリを作成し、作成先に移動してVS Codeを起動します。

$ mkdir consoleApp1
$ cd consoleApp1
$ code .

新しいファイルを追加(⌘N)して、C#のコードを書いていきます。
Program.cs

using System;

namespace consoleApp1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var bob = new Person(){ID=1,Name="Bob",Age=18};
            
            Console.WriteLine($"Hello {bob.Name}!");
            Console.ReadKey(true);
        }
    }
}

Person.cs

using System;

namespace consoleApp1
{
    public class Person
    {
        public int ID { get; set; }
        public string Name { get; set; } = "No name";
        public int Age { get; set; }
    }
}

次にプロジェクトの設定を書いておきます。
project.json

{
  "version": "1.0.0-*",
  "description": "consoleApp1 Console Application",
  "authors": [ "" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "compilationOptions": {
    "emitEntryPoint": true
  },

  "tooling": {
    "defaultNamespace": "consoleApp1"
  },

  "dependencies": {
  },

  "commands": {
    "consoleApp1": "consoleApp1"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Console": "4.0.0-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

この状態でコマンドパレットより`dnx`と入力しパッケージのRestoreを選択しdnu restoreを実行します。制御がターミナルに移り、Restore completeと出ればok。
再度`dnx`と入力しRun Commandを選択、dnx consoleApp1を実行します。
f:id:sh_yoshida:20160422074750p:plain

実行結果

f:id:sh_yoshida:20160422083814p:plain
Hello Bob!