私は新しいTask Parallel Libraryを使用していますが、今日はこのケースに行きました:
このコードはコンパイルされません:
internal Task<Guid?> SavePages(string[] pages)
{
return Task.Run(() =>
{
if (pages == null || pages.Length == 0)
return null;
....
null の null 許容 Guid を明示的に返さない限り:
internal Task<Guid?> SavePages(string[] pages)
{
return Task.Run(() =>
{
if (pages == null || pages.Length == 0)
return (Guid?)null;
// Check documents path access
なぜこの振る舞いなのか、私は何か間違ったことをしているのですか? つまり、コードは 2 番目のオプションで動作するようになりますが、わかりません ライブラリを悪用している場合、null は常に null ですよね。
コンパイル エラー:
ブロック内の戻り値の型の一部がデリゲートの戻り値の型に暗黙的に変換できないため、ラムダ式をデリゲート型 'System.Func' に変換できません