Quantcast
Channel: ++C++; // 未確認飛行 C ブログ
Browsing all 482 articles
Browse latest View live

C# の null 判定の話

null、一般名詞としては「無効なもの」とか「0個」とかの意味の単語です。 zero も語源をたどるとアラビア語とかサンスクリット語の「空っぽ (nothing)」にあたる単語から来ていて、実のところ一般名詞としては出自が違うだけで null = zero だったり。 一方、C# (とそれに類するプログラミング言語)では、 null というキーワードを「無効なものを 0...

View Article


Visual Studio 16.9 Preview 3 (C# Next チョットある)

Visual Studio 16.9 Preview 3 が出たということでライブ配信をしていました。 冒頭で話しているんですが、Preview 1 は 16.8 正式リリースと同時だったので 16.8 の方を紹介、 Preview 2 はそんなに大きな変化もなかったので、Preview 3 で初めて 16.9 の話です。 ポロリ YouTube 配信前に作ってあるお品書き...

View Article


UAX31: Unicode Identifier の話

今日はまた去年の作業が元ネタで、プログラミング言語の識別子に使える文字に関する話です。 レターか数字 「1文字目にはアルファベットか _、2文字目以降にはそれに加えて数字を使えます。」 30年くらい前にはこれが「プログラミング言語の識別子(変数名など)に使える文字列」の定義でした。 _...

View Article

Image may be NSFW.
Clik here to view.

ピックアップRoslyn: raw string literal

ブログで取り上げたい C# Language Design Meeting 議事録が1か月分くらいたまっているわけですが: 1/27、2/3、2/8、2/10、2/22 しばらく、機能ごとに1個1個取り上げていこうかなという感じになっていまして、今日は raw string literal の話から。 概要...

View Article

ピックアップRoslyn: 構造体の引数なしコンストラクター

前回の続き。 というかしばらく「C# Language Design Meeting 議事録が1か月分くらいたまったので1個1個機能紹介」シリーズ。 議事録(前回と比べて2/24議事録が増えてます): 1/27、2/3、2/8、2/10、2/22、2/24 今日は「構造体の引数なしコンストラクター」の話。 概要: 構造体の引数なしコンストラクター 現状ではコンパイル...

View Article


ピックアップRoslyn: 文脈キーワードの複雑さ低減

ここ数回やってる「C# Language Design Meeting 議事録が1か月分くらいたまったので1個1個機能紹介」シリーズに見せかけて、もうちょっと別枠。 Design Meeting の場に上がっていなくて、まだ単体の提案ドキュメントが出ただけの状態のものです。 [Proposal]: Only Allow Lexical Keywords in the Language #4460...

View Article

ピックアップRoslyn: 分解時の宣言と変数の混在

.NET 6 Preview 1とか Visual Studio 16.9 正式版& 16.10 Preview 1とかが出ましたね。 というの、ライブ配信はしてたんですが。 その中で、今日は C# 10.0 候補で、すでに Visual Studio 16.10 にマージ済みの機能の紹介。 以下のようなコードがコンパイルできるようになっています。 int x; (x, var y) = (1,...

View Article

ピックアップRoslyn: using がらみ (using エイリアスの改善と global using)

今日も「C# Language Design Meeting 議事録」の中から1個1個機能紹介。 今日は2/10、2/22辺りの話になります。 usingがらみに色々更新が掛かるみたいです。 大まかに2点。 using エイリアス改善: これまで書けてもよさそうなのに書けないエイリアスを書けるようにする global using: プロジェクト全域に対して有効な using ディレクティブ...

View Article


ピックアップRoslyn: Improved Interpolated Strings

string interplation の改善するって。 現行仕様 C# 6.0 から以下のようなコードで string.Format 相当のことができるようになったわけですが。 var s = $"({a}, {b})"; これは、以下のように展開されます。 var s = string.Format("({0}, {1})", a, b); これがパフォーマンス的にあんまりよろしくなくて…...

View Article


Image may be NSFW.
Clik here to view.

なんとかしてくれるゼロ幅スペース

今の Windows の IME は文字コード直打ちから F5 キーを押すことで任意の文字を入力できる機能を持っています。 いつからだろう。 Windows 10 が「新しい Micorsoft IME」になってからだとは思うんですが、気が付けばそんな機能が。 というか、逆に IME パッドはショートカットキーでは出せなくなった? (右クリック メニューからの選択では出せます。) 昨日の C#...

View Article

Image may be NSFW.
Clik here to view.

YouTube で C# がらみのライブ配信初めてました(1年経った)

なんか割かし真面目に YouTube で C# ライブ配信するようになってから、気が付けばもう1年経ってるらしい。 ufcpp YouTube チャンネル 元々、「落ち着いたらちゃんとした告知的なものをここのブログでも書きたい」と思ってたら1年経ちました(今ここ)。 始めた当初の頃とか、ノート PC で無線 LAN で配信してましたからね、これ。 諸事情あって。...

View Article

ピックアップRoslyn: ラムダ式の改善

ラムダ式、これまでのバージョンでもこまごまと小さい改善があったりしたので今「lambda improvements」と言われてもタイトル的にはインパクト薄そうですが… C# 10.0 向けに結構大きな改善を入れようとしているみたいです。 Add proposal for lambda improvements #4451 背景 C# 2.0 でメソッドをデリゲート型の変数に代入するときに new...

View Article

ピックアップRoslyn 4/4: static virtual/abstract members

インターフェイスの静的メソッドを virtual/abstract 指定できるようにする話が出ています。 [Proposal]: Static abstract members in interfaces #4436 主な用途は、 ファクトリ 比較 (Equatable とか Comparable) 数値計算 とかになると思います。 一番求められている用途は数値計算で、要は NumPy...

View Article


Visual Studio 16.11 Preview 2: record struct と global using

Visual Studio 16.11 Preview 2 が来ていて、これに C# 10.0 の新機能が2つほど merge されています。 (いつも通り、LangVersion preview を入れれば利用可能になっています。) record struct global using ちなみに本当は 16.10 Preview 3 のときに sealed record ToString...

View Article

C# 10.0 に入れるかどうか確定させる時期が来たようです

今年もそろそろ、どの機能を C# 10.0 にして、どの機能を "Next" のまま(11 以降に先送り)にするかを決めないといけない時期が来ましたと言う話。 マージ済み機能 まず、Language Feature Status が更新されました。 roslyn#54728 「C# 10.0」の方に移ったのが以下の4つ。 (17.0p2 が Visual Studio 17 Preview 2、...

View Article


.NET 6 Preview 7 & Visual Studio 2020 Preview 3

一昨日くらいに来てました。 Visual Studio 2022 Preview 3 now available! Announcing .NET 6 Preview 7 Preview Features in .NET 6 – Generic Math String Interpolation in C# 10 and .NET 6 新しい C# テンプレート ASP.NET Core...

View Article

Image may be NSFW.
Clik here to view.

最初の C# プログラム(.NET 6 新テンプレート)

.NET 6 ではプロジェクト テンプレートが更新されて、かなりシンプルになります。 例えば、コンソール アプリの場合(dotnet new console コマンドで生成)は(コメント行を除けば実質)以下の1行だけの C# ファイルが生成されます。 Console.WriteLine("Hello, World!"); 先日の .NET 6 Preview 7 から、コンソール アプリと Web...

View Article


.NET のカルチャー依存 API 問題

以下のコード、実行環境によって出力結果が変わります。 Console.WriteLine(new DateTime(2021, 8, 22)); 日本語 Windows 環境だと 2021/08/22 0:00:00 と表示されると思いますが、 OS 設定でカルチャーを変更すると別の書式になります。 例えば、en-US カルチャーにすると 8/22/2021 12:00:00 AM になります。...

View Article

Image may be NSFW.
Clik here to view.

RC 出てた話からの、GA 迫ってたりする話

8月からしばらくブログをさぼっていたわけですが。 ブログとしてはお久しぶりです。 C# 10.0 記事 まあ、とはいえ、別に消息不明になっていたわけでもなく、C# によるプログラミング入門の方の記事書きをちゃんとしていただけでして。 更新履歴 2021/10/24 更新:C# 10.0 の新機能 [C#] 2021/10/17 更新:ローカル関数と匿名関数 [C#] 2021/09/23...

View Article

Image may be NSFW.
Clik here to view.

【C# 10.0】ファイル スコープ名前空間 (一斉置換設定)

昨日、C# 10.0 が正式リリースされたわけですが、皆様もう C# 10.0 へのアップグレードはお済でしょうか(当日アプグレが当たり前のような口調)。 まあ、 C# はそんなに大きな破壊的変更はしない言語ですし、 TargetFramework や LangVersion を書き換えるだけならそこまで大きな問題は起きないんじゃないかと思います。 (たぶん。 僕は CryptoStream...

View Article
Browsing all 482 articles
Browse latest View live