Nobuyuki Iwanaga
Nobuyuki Iwanaga
https://ufcpp.net/study/il/ に「.NET Framework」の文言残ってる。 .NET に変えたい。 特に、大見出しレベルで「.NET Framework」って出ちゃってるのよくない。
クラスの中にクラスを書ける的な話、あんまりなさそう。 入れ子って言葉自体、[トップ レベル](https://ufcpp.net/study/csharp/package/toplevelaccessibility/)の対義語として触れられてる程度。
nullable の box 命令解釈、JIT レベルで特殊処理されてるって話、どこかには書いた記憶あるんだけど、 ufcpp.net 内にはないっぽい? 検索で出てきてる感じ、[build insider](https://www.buildinsider.net/column/iwanaga-nobuyuki/012) で書いてるっぽい? これ、一応、[null 許容値型](https://ufcpp.net/study/csharp/sp2_nullable.html) と [ボックス化](https://ufcpp.net/study/csharp/RmBoxing.html) にも同じようなこと書いておいた方がいいかも。 `Nullable` と全く同じ構造の `Optional` なり `MyNullable` なりを作っても、`T?` と同じ挙動は絶対にできない。 なんせ C# → IL へのコンパイル時点では普通に box 命令が出てて、そこを特殊処理で null...
https://github.com/ufcpp/UfcppSample/issues/254 から独立した issue にしておいた方がよさそう。 - パフォーマンス改善を意図して`ValueTask`が導入されて、C# 7.0で[Task-like](/study/csharp/sp5_async.html#task-like)が認められた - 用途ごとに `Task-like` を1個1個作るのはしんどい - `ValueTask` の仕組みに乗っかりたい - なので、`ValueTask`が `IValueTaskSource`を受け付けるようにして、このインターフェイスさえ実装すればいいようにした - ただ、`IValueTaskSource` を実装するにあたっては、ほとんどの場合、共通かつ煩雑なパターンが出てくる - その煩雑な部分を構造体にまとめたのが`ManualResetValueTaskSourceCore` - `TaskCompletionSource`よりパフォーマンス重視 - キャッシュ・再利用可能 - `await`前提で、continuation が1個だけという想定の最適化をしてる 「雑記」で1ページ独立させて、[非同期イテレーター](https://ufcpp.net/study/csharp/async/asyncstream/#async-iterator)とかからはリンクだけする。
C# 5.0辺りの頃、力尽きててこの時期書いたページいまいち… 直したい。 非同期メソッドとかは、Software Design辺りに書いた内容ベースで書き直す方がよさげ。 魔導書 vol3 並列・非同期 からもまだ移植してない分ありそう。 というか、書きかけばっかり… あと、 - [ ] out, ref 無理 - [ ] stackalloc とか ref 構造体利用、無理。C# 8.0 で、`{}` で1段くくって(scoped)その中に await/yield がなければ使えるように -...
実装時期未定だけど、辞書リテラルとかが入りそうな雰囲気もあるんで、それが入ったら本気出す。 - [x] タプルとかパターンマッチのために「データ型」(datatype)ってセクション新設。 - [ ] 関数指向とデータ処理も絡む話なので、この3セクションまとめての序文がほしい。 https://ufcpp.wordpress.com/2015/01/31/c-design-notes/ ↑これの「data-centric」「working with data」的なの。
http://ufcpp.net/study/csharp/sp_delegate.html に「修正予定」が延々残ってたので issue 化。 - [ ] `Action a = new Action(Method)` C# 2.0 からは `Action a = Method` って書けるようになったんだし、サンプルコード的には積極的に`new`省略の方使いたい。 (とはいえ、`new`されてるんだよ、と言う話は要りそう。) - [ ] first-class method このページとは独立して「first-class method」みたいな章を追加したい。 組み込み型なら -...
https://twitter.com/ufcpp/status/806808910799609860 (はてな)とか(びっくりマーク)とか入れておいた方が検索性はよさそう。 `!` は英語圏だと bang (「バン」って音で脅かす感じ)って読むこと多そうっぽい。`!.` だと bang dotみたいな。まあ、exclamationとか長いし。 `?.` はすっかり elvis が定着しちゃってるけど、`?`の読みは何かbangみたいなのあるのか探してみる。
The following code fails to compile. ```cs namespace A1 { [Cloneable.Cloneable] public partial class C { public int X { get; set; } } } namespace A2 { [Cloneable.Cloneable] public...