2 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
以下兩個(gè)隱式運(yùn)算符來自ActionResult<TValue>
/// <summary>
/// Implictly converts the specified <paramref name="value"/> to an <see cref="ActionResult{TValue}"/>.
/// </summary>
/// <param name="value">The value to convert.</param>
public static implicit operator ActionResult<TValue>(TValue value)
{
return new ActionResult<TValue>(value);
}
/// <summary>
/// Implictly converts the specified <paramref name="result"/> to an <see cref="ActionResult{TValue}"/>.
/// </summary>
/// <param name="result">The <see cref="ActionResult"/>.</param>
public static implicit operator ActionResult<TValue>(ActionResult result)
{
return new ActionResult<TValue>(result);
}
是什么允許在操作中使用多個(gè)返回類型。
[HttpGet("test123")]
public ActionResult<string> Test123() {
if(someCondition) return "String value"; //<--String
return Ok(); //<-- OkResult
}
當(dāng)返回字符串時(shí),ActionResult<TValue>(TValue value)調(diào)用運(yùn)算符,返回ActionResult<TValue>另一個(gè)運(yùn)算符的有效值,反之亦然。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
您的第一個(gè)示例利用隱式用戶定義類型轉(zhuǎn)換運(yùn)算符,如下所示:
public static implicit operator ActionResult<TValue>(ActionResult result)
{
return new ActionResult<TValue>(result);
}
您的第二個(gè)示例 usingas無(wú)法使用隱式轉(zhuǎn)換運(yùn)算符,因?yàn)楦鶕?jù)文檔,它:
...僅執(zhí)行引用轉(zhuǎn)換、可空轉(zhuǎn)換和裝箱轉(zhuǎn)換。as 運(yùn)算符不能執(zhí)行其他轉(zhuǎn)換,例如用戶定義的轉(zhuǎn)換,而應(yīng)使用強(qiáng)制轉(zhuǎn)換表達(dá)式來執(zhí)行這些轉(zhuǎn)換。
- 2 回答
- 0 關(guān)注
- 122 瀏覽
添加回答
舉報(bào)