Closed ufcpp closed 5 years ago
「Issue #1412, trivial to implement in 8.0, where the stack-spilling machinery is there anyway for pattern matching.」らしい。 パターンマッチングのついでだからほとんどコストがかからないとのこと。
実行してみたら InvalidProgramException 発生。 ランタイム側の修正必要で、 .NET Core 3.0 Preview 6 待ちとかかな?
using System;
class Program
{
static void Main()
{
M(stackalloc byte[1]);
}
static void M(Span<byte> buf) => buf[0] = 1;
}
↑ 既知バグ(Preview 2 まで治らない)、かつ、 stackalloc を Span に代入するだけで起こるっぽい。
フィールド初期化子とかに対しても使えるらしい。
using System;
class Program
{
static int Init(Span<byte> buffer) => 0;
int a = Init(stackalloc byte[8]);
static void Main()
{
}
}
以下のようなコードを書けるようになるって話らしい。
16.2 Preview 1 で有効化されてること確認。 相変わらず、非同期メソッド内だと
{}
で囲んでようとダメ。