有没有办法指定通用类型 [HttpPost]
[OutputCache(Duration = 0)]
public void SaveNewApplication(string appName, string appDesc, int expire, string displayNote, string adminRole,
string defualtRole, bool active)
{
}
只能是T
或f32
?否则我最终强加了很多样板类型限制:f64
,Copy
,Add<Output=T>
,Sub<Output=T>
...,Mul
...,{{ 1}},Div
等,一段时间后会变得单调乏味。此外,我担心此列表将来会包括Zero
,One
,Sin
等。
答案 0 :(得分:5)
您想要num::traits::Float
,可在包num
中找到。
每个满足Float
的类型都保证为Num + Copy + NumCast + PartialOrd + Neg<Output=Self>
。反过来,PartialEq + Zero + One + Add + Sub + Mul + Div + Rem
需要Num
。这回答了您对基本算术的第一次要求。其他操作如sin()
,cos()
可作为Float
中的成员函数使用。
最后,f32
和f64
作为Float
的实施者开箱即用。