首页 > 解决方案 > 无法从字符串转换为类

问题描述

我创建了以下具有常量属性的类,因此我可以将其用作某种枚举。

public class Interval
{
  public const string FiveMinutes = "5m";
  public const string FifteenMinnutes = "15m";
  public const string OneDay = "1d";
  public const string OneWeek = "1wk";
  public const string OneMonth = "1mo";
}

该方法的内容期望Interval

public IRestResponse GetSpark(string Symbol, Interval Interval)
        {
  var url = $"https://...?interval={Interval}";
  return RestAPI.RestCall(url);
}

使用时Interval.OneWeek出现错误“CS1503: Argument 2: cannot convert from 'string' to 'class.Enum.Interval'。”

var foo = new fooClass();
var fooMethod = fooClass.GetInfo("Example", Interval.OneWeek);

为什么我会收到此错误以及如何解决?

标签: c#stringconstants

解决方案


假设调用实际上是:

fooClass.GetSpark("Example", Interval.OneWeek);

您使用两个字符串作为参数调用此方法:“Example”和“1wk”(Interval 中定义的 const 字符串)。GetSpark 方法实际上需要一个字符串和一个 Interval 类,这不是您提供的。

因此,将您的 GetSpark 方法重写为:

public IRestResponse GetSpark(string symbol, string interval)
{
  var url = $"https://...?interval={interval}";
  return RestAPI.RestCall(url);
}

推荐阅读