ufcpp-live / UfcppLiveAgenda

@ufcpp live streaming agenda
MIT License
24 stars 2 forks source link

.NET 8 RC 2 #80

Closed ufcpp closed 11 months ago

ufcpp commented 12 months ago

配信URL: https://www.youtube.com/watch?v=0rkkqdACWsc

さすがに RC 1 から 2 の間でそんなに変わらない。 なので、今回の配信は https://github.com/ufcpp-live/UfcppLiveAgenda/issues/79 の話混ぜると思う。

一応 C

今回の変更点

C#、コレクション式で、ReadOnly 系インターフェイスをターゲットにしたとき、匿名型挟むように。

IEnumerable<string> list = ["a", "b", "c"];

IEnumerable<string> list = new <>z__ReadOnlyArray<string>(new string[3] { "a", "b", "c" });

まあ、 IsReadOnly true になるようにしてるだけで、パフォーマンス配慮そんなになさそう。 (ひどくはないけど、enumerator インスタンス作るの避けるとか、中身に InlineArray 使うとかはやってない。)

LDM の話題

csharplang 7587 でちょこっとだけトリアージ。

ufcpp commented 11 months ago

そういや、C# 7 のドキュメント作業終わって ECMA 提出できる状態になったとか。 7 の。

ufcpp commented 11 months ago

↓も今回からかも(単に対応漏れ)。

[A([1, 2, 3, 4, 5])]
class X;

class AAttribute(int[] _) : Attribute;
ufcpp commented 11 months ago

あー、配信時点で忘れてたけど、↓も行けるようになってた。

IImmutableList<int> x = [1, 2, 3];

インターフェイスに対するコレクション式。 CollectionBuilder 指定のファクトリメソッドの戻り値が違ってても、代入可能(派生クラス、インターフェイス実装クラス)でも受け付けるやつ。