首页 > 解决方案 > 无法添加到列表中的数字

问题描述

我正在尝试将 main 函数中给出的元素存储到 textinput 类的列表中并将其回显。数字输入类用于过滤被存储为仅数值的元素。我希望输出只有 10,因为数字输入类的目的是过滤掉字母“a”。但是,我遇到了一些错误,例如预期的文件结尾和缺少“{”和“}”。我检查了我是否错过了其中的一些,但我找不到任何丢失的。另外,我这样做是否正确,因为我是这门语言的新手,我需要一些关于如何纠正和改进它的建议。谢谢你。

编辑:我已经用我得到的反馈编辑了我的代码,并且出现了一些新的错误消息。错误如:-

当前上下文中不存在名称“add_char”。

找不到类型或命名空间名称“List<>”。

“TextInput”不包含“c”的定义,并且找不到接受“TextInput”类型的第一个参数的扩展方法“c”

EDIT2:因此,在导入 System.Collections.Generic 并将列表更改为受保护后,我遇到了其他错误,如屏幕截图所示:- 错误消息

代码:

using System;
using System.Collections.Generic;

public class TextInput {   
    
   protected List<char> add_char = new List<char>();

   public void Add(char c){
        
        add_char.Add(c);
        
    }

    public string GetValue(){    
        
        for (add_char.size = 0; add_char.size < 400; add_char.size++)
            {
               return  c;                
            }
                       
    }

}

public class NumericInput:TextInput{

    public new void Add(char c){

        if(char.IsNumber(c)){ 
            
            add_char.Add(c);
        
        }else{

            Console.WriteLine("This is not a number");

        }

    }

}

public class UserInput
{
    public static void Main(string[] args)
    {
        TextInput input = new NumericInput();
        input.Add('1');
        input.Add('a');
        input.Add('0');
        Console.WriteLine(input.GetValue());
    }
}

标签: c#

解决方案


当前上下文中不存在名称“add_char”。

因为它没有。 是在类的方法中add_char声明的局部变量。局部变量只能在声明它们的方法范围内使用。您正在尝试以不同的方法(您的类的方法)使用它。也许您打算在? 的类级别声明它:AddTextInputAddNumericInputTextInput

protected List<char> add_char = new List<char>();

public void Add(char c)
{
    //...
}

找不到类型或命名空间名称“List<>”。

using System.Collections.Generic;在文件顶部添加。另请注意,Visual Studio 可以帮助您解决此问题。如果您在使用中放置光标或悬停鼠标,List<>则应显示工具提示(带有一个小灯泡)以帮助纠正错误。

“TextInput”不包含“c”的定义,并且找不到接受“TextInput”类型的第一个参数的扩展方法“c”

因为它没有。 是在类的方法中c声明的局部变量。局部变量只能在声明它们的方法范围内使用。当有人打电话时,你到底想回什么?该方法没有变量。通过上述更改,您可以移动到类级别,然后该方法可以访问它。AddTextInputGetValue()add_char


推荐阅读