【问题标题】:How do I fix this "is a variable but is used like a type" error?我该如何解决这个“是一个变量但像类型一样使用”的错误?
【发布时间】:2020-05-28 13:51:52
【问题描述】:

我需要使用for 循环来检查我的数据库中的名称列表,并且需要与我存储在本地驱动器上的列表的前两个字符串匹配,但我收到以下错误:

nameMatch 是一个变量,但用作类型

我不知道如何解决这个问题。任何想法将不胜感激。

public bool isLightOn(Person lstName, string nameMatch)
{
    if(nameMatch !=null)
    {
        var name = nameMatch.substring(0,2)
        var cService = new PersonService();
        var persons = cService.ListPersons();

        nameMatch = nameFound;

        foreach(nameMatch nm in persons)
        {
            nameMatch = nm;
            if(nm.LastName == name )
                //do something..
        }
    }
}

【问题讨论】:

  • 正如错误所说,在foreach(nameMatch nm in persons) 中,当它是参数名称时,您将nameMatch 用作类型。此外,您应该用这是什么语言(似乎是 C#)来标记这个问题。
  • 您能简单谈谈您输入foreach(nameMatch nm in persons) 的原因以及您认为nameMatch 在这种情况下的含义吗?我很想知道人们是如何犯这些错误的,这样我就可以设计出更好的诊断方法;显然您收到的诊断信息没有充分解释问题。

标签: c# string variables types


【解决方案1】:

几乎可以肯定的是这一条:

foreach(nameMatch nm in persons)

最有可能声明一个类型 nameMatch的变量nm,以迭代persons中的对象。

很难确定,因为您的问题实际上并未指定语言,但那是我首先要寻找的地方。

您应该弄清楚cService.ListPersons() 返回的类型(例如,字符串的集合)并将其(例如,字符串)用作类型。

或者这可能是一种弱类型语言(如 Python 或 Javascript),其中变量可以旧有任何类型。在这种情况下,您根本不需要类型。

【讨论】:

  • 对不起,这是在 C# 中的错
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 2016-07-21
  • 2016-09-09
  • 1970-01-01
相关资源
最近更新 更多