c#函数错误

本文关键字:错误 函数 | 更新日期: 2023-09-27 18:11:00

我有两个用户定义的函数(WriteFunction)和(ReadFunction),在第二个函数(ReadFunction)中有一个错误,这是关键字不存在于当前上下文中。(在姓名,ID,年龄,电子邮件下面划线)

下面是完整的代码:

//First Function
public static void WriteFunction()
    {
        int count = 0;
        while (count < 10)
        {
            Console.Write(" Enter your Name: ");
            string Name = Console.ReadLine();
            Console.Write(" Enter your ID: ");
            int ID = int.Parse(Console.ReadLine());
            Console.Write(" Enter your Age: ");
            int Age = int.Parse(Console.ReadLine());
            Console.Write(" Enter your E-mail: ");
            string Email = Console.ReadLine();
            count++;
        }
    }
    //Second Function
    public static void ReadFunction()
    {
        string output = string.Format("Thank you for registration! Your Submitted information are:" + Environment.NewLine + "Name: {0}"
        + Environment.NewLine + "ID: {1}" + Environment.NewLine + "Age: {2}" + Environment.NewLine + "E-mail: {3}", Name, ID, Age, Email);
        // I using the Environment.NewLine to insert new lines
        Console.WriteLine(output);
    }

等待你的答案。谢谢。

c#函数错误

c#基本上是一种面向对象的语言。除其他外,状态被存储为对象的成员变量。

因此,@LarsTech表示您的Name, ID, AgeEmail都是该方法的局部变量。要使它们对其他方法可用,您需要将它们移出,成为类的字段。

public class MyFunctions
{
    private static string _name;
    private static int _id;
    private static int _age;
    private static string _email;
    public static void WriteFunction()
    {
        int count = 0;
        while (count < 10)
        {
            Console.Write(" Enter your Name: ");
            _name = Console.ReadLine();
            Console.Write(" Enter your ID: ");
            _id = int.Parse(Console.ReadLine());
            Console.Write(" Enter your Age: ");
            _age = int.Parse(Console.ReadLine());
            Console.Write(" Enter your E-mail: ");
            _email = Console.ReadLine();
            count++;
        }
    }
    public static void ReadFunction()
    {
        string output =
            string.Format(
                "Thank you for registration! Your Submitted information are:" + Environment.NewLine +
                "Name: {0}"
                + Environment.NewLine + "ID: {1}" + Environment.NewLine + "Age: {2}" + Environment.NewLine +
                "E-mail: {3}", _name, _id, _age, _email);
        // I using the Environment.NewLine to insert new lines
        Console.WriteLine(output);
    }
}

如果你想继续使用C#,你应该阅读OOP教程,因为它是最基本的概念之一。

至于你的问题,如果我只是简单地重写你的整个代码,使它以你想要的方式工作(因为是的,它需要改变),将不会有多大帮助。我强烈建议您阅读OOP,并在深入了解它之前尝试理解它是如何工作的。

在你的例子中,你说你想要ReadFunction()WriteFunction()继承。这里有一些东西:

  • 函数在c#中被称为方法。
  • 方法是类的一部分。继承适用于类而不是方法,它是OOP的三大原则之一。

你应该很好地开始这个良好的脚。此外,仅通过查看方法的名称,我们就可以知道它们可能不是为了相互继承(暗示存在类)。比如:

Parent Class : InformationManager 
Child  Class : ReadInformation inherits InformationManager
Child  Class : WriteInformation inherits InformationManager

静态事物(变量、方法、属性)不能被继承这是故意的,我建议你阅读一些c#书籍来正确理解这个概念和其他概念。

对于您的问题,在第一种方法中,将static替换为virtual。在第二个函数中,用override替换static。

Virtual告诉编译器方法是可继承的,override告诉编译器方法实际上是继承的