-
-
Notifications
You must be signed in to change notification settings - Fork 41
Closed
Labels
Description
C# 14 ではないけども .NET 10 からの機能。
ブログ: https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-app/
少なくともデモ用途としてはすっごい便利:
ufcpp-live/UfcppLiveAgenda#104 (comment)
だいぶ前からある「C# Script 方言」とは違って、普段使ってる通りの C#。
内部的にも「csproj を生成してそれを dotnet run App.csproj してる」みたいな実装。
複数ファイルコンパイル、パッケージ参照、プロジェクト参照可能。
ignored directives
そのために、C# の言語的にも #! と #: ディレクティブを追加。
csharplang 8617
(といっても「コンパイラーとしては単に無視」、「実際にそれを見てるのは SDK 側」)
#! は先頭行でないとエラー。(空行すら #! の前にあるのはダメ。)
#: も「コメントと #! を除いて一番前」でないとエラー。
基本的には dotnet run App.cs の形でビルド・実行しないと #! も #: もエラー。
(内部的に <Features>FileBasedProgram</Features> フラグを立てる構造なので、これを手書きすればビルドできちゃうけど、意味はない。)
エラーメッセージはちゃんと 「'#:' directives can be only used in file-based programs ('/feature:FileBasedProgram')」