Nobuyuki Iwanaga

Results 86 comments of Nobuyuki Iwanaga

- [ ] [IValueTaskSource](https://ufcpp.net/blog/2018/3/pickuproslyn0323/) の話も入れておいた方が

[ref 構造体](https://ufcpp.net/study/csharp/resource/refstruct/) のページに話足そうかな。 [参照渡し](https://ufcpp.net/study/csharp/sp_ref.html)、[Span](https://ufcpp.net/study/csharp/resource/span/) のページでも軽く触れてリンク? [fast Span](https://ufcpp.net/study/csharp/resource/span/#fast-span)のとこと、[参照戻り値で返せるもの](https://ufcpp.net/study/csharp/sp_ref.html?p=2#flow-analysis)のとこ。

↓は結局いままでのまま。 ```cs TypedReferenc m() => default; ```

今 scoped ref しかない(11ではそれしか対応しない判断した)けど、今後 ref scoped もあり得るらしい。 もしや… readonly scoped ref readonly scoped Span ある?

https://github.com/ufcpp/ContextFreeTask/pull/9

書きかけだけど先にページ作って半分くらいは埋めた。 https://ufcpp.net/study/csharp/resource/refstruct/#ref-field https://ufcpp.net/study/csharp/cheatsheet/ap_ver11/#ref-field https://ufcpp.net/study/csharp/resource/span/#fast-span7

ref 解析、unsafe コンテキストではエラーじゃなくて警告だけにするってやつ、ちゃんと入ってた。 ```cs static ref int SafeRef() { int i = 1; return ref i; // エラー } unsafe static ref int UnsafeRef() { int i = 1; return...

これの作業の一環でやったらしいんだけど、参照型のアドレスを `&` で取れるようになってるっぽい? ```cs unsafe { object o = new(); object* ptr = &o; } ``` いつの間に… なぜ unsafe ref 解析に混ぜてやってる? csharplang/issues/6476

.NET 8 時点、scoped が付いてる BCL のメソッド、5個しかなかった。 MemoryMarshal CreateSpan reference MemoryMarshal CreateReadOnlySpan reference DefaultInterpolatedStringHandler AppendFormatted value DefaultInterpolatedStringHandler AppendFormatted value Unsafe AsRef source しかも MemoryMarshal と Unsafe のは「本来 scoped が付いてたらまずい」「unsafe な手段でコンパイラーに嘘ついてる」メソッド。 実質...

```cs using System.Diagnostics.CodeAnalysis; ref struct RefInt(ref int target) { public ref int Target = ref target; // 参照がメソッドの外に漏れる想定。 public void Reassign([UnscopedRef] ref int newTarget) { Target = ref newTarget; }...