はじめに
C#er 諸兄は人生の中で一度は、
C#をインタプリタ言語のように扱えたらどれだけよかったろう...
と考えたことがあるだろう。
それ、できますよってお話。
導入
前提
-
.NET Core 3.x以上が導入されていることが望ましい- もちろん
C#er諸兄は問題ないよなぁ?!
- もちろん
-
VSCodeが導入済み かつC#プラグイン導入済み
dotnet-script のインストール
-
以下のコマンドを実行する
powershelldotnet tool install -g dotnet-script -
以上、終了
使い方
その1:シェルで使う
サンプルは Powershell を利用しているが、dotnet コマンドが使えれば別になんでも良い。
-
以下のコマンドを実行する
powershelldotnet script -
インタプリタ環境が起動するので、あとはお好みで
powershellConsole.WriteLine("Hello, World!!"); -
ただ表示したいだけなら
Console.WriteLine()すらいらないpowershell"Hello, World!!" -
もちろん変数に保存した値の確認も同様に可能
powershellvar msg = "Hello, World!!"; msg -
.NETと言えばNuGet!! もちろん対応powershell#r "nuget: Utf8Json" var json = @"{ ""key"":100 }"; var data = Utf8Json.JsonSerializer.Deserialize<dynamic>(json); data["key"]
その2:VSCodeで使う / 単一ファイル
-
適当なところに
.csxファイルを作成して、VSCodeで開くpowershellNew-Item main.csx code ./main.csx -
とりあえず
Hello, World!!をするmain.csxConsole.WriteLine("Hello, World!!"); // .csxだと直値を出力とかはできない. 以下はエラーとなるので注意. // "Hello, World!!" -
実行してみる
powershelldotnet script ./main.csx -
NuGetも利用可能main.csx#r "nuget: Utf8Json" var json = @"{ ""key"":100 }"; var data = Utf8Json.JsonSerializer.Deserialize<dynamic>(json); Console.WriteLine(data["key"]);
その3:VSCodeで使う / インテリセンスを効かせる
その2の方法でも十分と言えば十分だけれども、インテリセンスのない C# なんて C# じゃない!!
ということで、インテリセンスを効かせた方法も紹介しておく。
-
適当なところにフォルダを作成して、
C#スクリプトプロジェクトを作成するpowershellmkdir ./work dotnet script init code . -
NuGetパッケージもVSCodeを開きなおせばインテリセンスが効くように!!main.csx// 以下を追記して、VSCodeで開きなおす #r "nuget: Utf8Json"
もっと詳しく!
公式サイト を読み込むのだ!!
おわりに
私は dotnet-script は、これでがっつり開発!というよりか、わりと断片的なコードの動作確認のために利用しています。
スクリプト利用するなら F# の方がかなり優秀だと思います。
ただ、実用に耐えうるレベルのものなのでドンドン使っていってもいいのでは?と思います。
以上、閉廷!!







