webapi 设置参数可为空_C# 9.0 新特性预览 空参数校验

(给DotNet加星标,提升.Net技能)

转自:Rwingcnblogs.com/Rwing/p/csharp-9-0

前言

随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们。

目录

  • C# 9.0 新特性预览 - 类型推导的 new

  • C# 9.0 新特性预览 - 空参数校验

  • C# 9.0 新特性预览 - Lambda 中的弃元

  • C# 9.0 新特性预览 - Record 类型

  • C# 9.0 新特性预览 - 模式匹配的改善

  • C# 9.0 新特性预览 - 其他小的变化

简便的空参数校验 (Simplified Null Argument Checking)

目的

这个特性主要是为了更简便的检查方法的参数是否为 null 并抛出 ArgumentNullExceptiony 异常。

语法

语法很简单,在参数名后加个叹号即可:

void M(string name!) {
    
...
}

以上代码会被翻译为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 .NET WebAPI 中,我们可以通过多种方式接收参数。以下是其中一些常用的方式: 1. 通过 URI 中的查询字符串传递参数 我们可以使用 [FromUri] 特性来获取从 URI 中传递的参数。例如,以下代码演示了如何通过查询字符串传递参数: ```csharp public IHttpActionResult Get([FromUri] string name, [FromUri] int age) { // 处理参数 } ``` 在这个例子中,我们使用 [FromUri] 特性将 name 和 age 参数标记为从 URI 中获取。如果我们发出 GET 请求 `http://example.com/api/person?name=John&age=30`,那么 WebAPI 将正确地将 name 和 age 参数设置为 "John" 和 30。 2. 通过请求正文传递参数 我们可以使用 [FromBody] 特性将参数绑定到请求正文中的数据。例如,以下代码演示了如何使用 [FromBody] 特性传递一个自定义对象: ```csharp public IHttpActionResult Post([FromBody] Person person) { // 处理 person 对象 } ``` 在这个例子中,我们使用 [FromBody] 特性将 person 参数标记为从请求正文中获取。如果我们发送一个 POST 请求,并将以下 JSON 数据作为请求正文发送: ```json { "Name": "John", "Age": 30 } ``` 那么 WebAPI 将正确地将 person 对象设置为一个名为 "John" 年龄为 30 的 person 对象。 3. 通过请求头传递参数 我们可以使用 [FromHeader] 特性将参数绑定到请求头中的值。例如,以下代码演示了如何使用 [FromHeader] 特性传递一个字符串参数: ```csharp public IHttpActionResult Get([FromHeader] string authToken) { // 处理 authToken } ``` 在这个例子中,我们使用 [FromHeader] 特性将 authToken 参数标记为从请求头中获取。如果我们发送一个 GET 请求,并将以下请求头包含在其中: ``` authToken: 123456 ``` 那么 WebAPI 将正确地将 authToken 参数设置为 "123456"。 以上是 .NET WebAPI 中接收参数的一些常用方式,但还有其他方式可以使用。根据不同的场景和需求,我们可以使用不同的方式来接收参数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值