- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑以下代码:
using System;
using System.Collections.Generic;
using System.Net.Http;
namespace dla.test2{
internal class Test{
public static void Main(){
var map=new Dictionary<string,string>(){
["hello"]="world"
};
using var foo=new FormUrlEncodedContent(map);
}
}
}
调用
FormUrlEncodedContent
的构造函数在构建时产生以下编译器警告:
WarningCS8620 Argument of type 'Dictionary<string, string>' cannot be usedfor parameter 'nameValueCollection' of type'IEnumerable<KeyValuePair<string?, string?>>' in'FormUrlEncodedContent.FormUrlEncodedContent(IEnumerable<KeyValuePair<string?,string?>> nameValueCollection)' due to differences in the nullabilityof reference types.
IEnumerable<KeyValuePair<string,string>>?
.我的
map
变量,是
Dictionary<string,string>
, 大概会实现接口(interface)
IEnumerable<KeyValuePair<string,string>>
所以我希望这里没有问题。
那么为什么会出现警告呢?
最佳答案
我觉得这里实际上有几个问题:
static void Main(string[] args)
{
var map = new Dictionary<string, string>()
{
["hello"] = "world"
};
M1(map);
}
static void M1(IEnumerable<KeyValuePair<string?, string?>>? nameValueCollection) { }
可以从您复制/粘贴到问题中的警告中推断出
FormUrlEncodedContent
类构造函数的 .NET 5 版本的实际声明必须是什么,所以我只写了一个不需要安装 .NET 5 的示例。
public FormUrlEncodedContent(IEnumerable<KeyValuePair<string?, string?>> nameValueCollection)
这告诉我文档是不准确的,如果不是完全不正确的话。我没有关注支持可为空引用类型的框架的更改,所以我不确定文档是否会显示这种情况下的可为空类型参数。在我看来应该是,但显然不是。至少,令我惊讶的是,文档将
nameValueCollection
参数本身显示为可以为空(实际上并非如此),更不用说它显示
KeyValuePair<TKey, TValue>
类型参数为不可为空的,而实际上它们可以为空。
null
来修改这些可空值, 违反了您自己的代码假设值不可为空。
关于c# - 将 KeyValuePair 枚举传递给 FormUrlEncodedContent 构造函数时,为什么 Visual Studio 会生成警告 CS620?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64491624/
我收到错误: System.UriFormatException: Invalid URI: The Uri string is too long. 问题出在这一行: FormUrlEncodedCo
我正在使用以下方法进行一些网络抓取 这对大多数网站都是成功的。 var content = new FormUrlEncodedContent(new[] { new KeyValuePair
我需要与仅接受表单编码负载的第三方端点进行交互。端点需要此端点的复杂数据类型,意思是这样的(但形式编码,而不是 JSON): { "foo": "bar", "baz": {
我有一个 URL,我想以 data="blahblahblah"的形式发布一个带有参数的正文。但是,在这种情况下,我的“blahblahblah”是一个完整的 XML,我将其简化为如下所示:
我正在使用 HttpClient。我正在发布网络表单参数。其中一个值(不是名称)是一个外国瑞典字符 ö ,#246; ö ASCII:拉丁文小写字母 O 元音变音 IE、Firefox 和 Chrom
我正在尝试向我的服务器发布一个联系方式。这就是我过去一直这样做的方式,它一直有效,直到我不得不使用字符串以外的对象。 using (HttpClient client = new HttpClient
在请求端,我的代码如下所示 var myList = new List {1,2,3}; var content = new FormUrlEncodedContent (
我的内容是: var content = new Dictionary { {"pickup_date", pickupDate.ToString("dd.MM.yyyy HH:mm")},
我编写了一个 JQuery 脚本来执行用户登录 POST(尝试执行我在附加信息部分使用 C# 执行的操作,见下文)。 在我的 html 页面使用 JQuery 代码触发 POST 后,我发现了以下问题
在 asp.net core web api 中,我有一个 POST 方法,可以从客户端获取 FormUrlEncodedContent 格式的用户名和密码。但是 "entry" 参数是 null。
考虑以下代码: using System; using System.Collections.Generic; using System.Net.Http; namespace dla.test2{
我是一名优秀的程序员,十分优秀!