我想创建一个方法,将调用基于HttpMethod的其他方法。 我的方法是这样的:HttpMethod作为参数的通用方法
public async Task<string> CreateAsync<T>(HttpClient client, string url, HttpMethod method, T data, Dictionary<string, string> parameters = null)
{
switch(method)
{
case HttpMethod.Post:
return await PostAsync(client, url, data);
case HttpMethod.Put:
return await PutAsync(client, url, data);
case HttpMethod.Delete:
return await DeleteAsync(client, url, parameters);
default:
return await GetAsync(client, url, parameters);
}
}
的问题是,开关呻吟一下:
一个恒定值,预计
而且每一种情况下用红色下划线。 有谁知道我在做什么错?
'HttpMethod.Post'和所有其他不是常量,这是switch语句所期望的。如果你检查[源代码](例如https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpMethod.cs),你会看到为什么。您可以使用战略模式来解决这个问题。 – Nkosi