私はこのコードを持っています:
public async static Task<T?> RequestValue1<T>(Command requestCommand)
where T : struct
{
// Whatever
}
public async static Task<T> RequestValue2<T>(Command requestCommand)
where T : class
{
// Whatever
}
2つのメソッドに同じ名前を付けたいです。これも可能ですか?
私の問題:
Nullable<T>ifが値型でありifTのインスタンスが参照型である戻り型(要求が失敗した場合はnull、要求が成功した場合は値)のために、2つの異なるメソッドを作成する必要があります。TTasyncref / outを許可しないため、タイプのメソッド引数TがTないと推論されず、2つのメソッドに同じ名前を付けることはできません(推論されない場合、ジェネリック制約は署名の競合解決に機能しないため、署名の競合T)
現在、このコードは機能しますが、「RequestValue1」と「RequestValue2」の間のこの奇妙な関数呼び出しは好きではありません。