私はこのコードを持っています:
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つの異なるメソッドを作成する必要があります。T
T
async
ref / outを許可しないため、タイプのメソッド引数T
がT
ないと推論されず、2つのメソッドに同じ名前を付けることはできません(推論されない場合、ジェネリック制約は署名の競合解決に機能しないため、署名の競合T
)
現在、このコードは機能しますが、「RequestValue1」と「RequestValue2」の間のこの奇妙な関数呼び出しは好きではありません。