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#基本上是一种面向对象的语言。除其他外,状态被存储为对象的成员变量。
因此,@LarsTech表示您的Name
, ID
, Age
和Email
都是该方法的局部变量。要使它们对其他方法可用,您需要将它们移出,成为类的字段。
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告诉编译器方法实际上是继承的