這里上面是一個可空參數的例子。請不要寫成
public WapOutgoingResponse<List<PatrolTaskOut>> GetTaskPatrolHistory(string user, DateTime? start, DateTime? end , int? count, int? since )
一開始我是這么寫的,但是在調用的時候發現
這么調用是找不到 這個路由的,只有
這個地址才能正確調用。一開始沒有想明白,后來在網上查找一下資源發現需要這么寫
DateTime? start = null
為什么原來的 DateTime? start 不行? “使用了沒有初始化默認值的變量” ,這就說明當我們想使用一個可空參數的時候不僅是 在類型后面加上?,還需要給它一個默認值。
其實還有另一個方法; 就是 [FromUri],使用這個配合對象實體做參數,會自動從url中解析對應的數據,如果不存在屬性則是默認值。
在聲明實體的時候我們仍可以如下:
我們可以從這里看出來如果是 DateTime? 那么他的值是 null ,而 DateTime 類型的則是 default(DateTime),
這里也可以看出,進行了初始化。實際操作中可根據需要選擇即可。
這里建議自己測試一下這三種,主要看的是請求地址url的區別