【发布时间】:2019-08-21 23:24:22
【问题描述】:
我正在尝试使用 OOP 创建数据库程序。我已经尝试解决了几个月,但似乎无法找到我正在寻找的答案。经历了示例,甚至是 Udemy 课程,但又回到了我所知道的极限。
我的目标是允许用户输入数据并将其安全地存储在另一个类下。当程序结束时,它将输出另一个班级的用户信息,而不是一个班级的所有用户信息。
我复习了 C# Master 等 Udemy 课程,并查看了 Microsoft 的 C# 教程。
代码表 1
using System;
namespace DataBase
{
public class Data
{
static string userFirst, userLast, userGender;
static int userAge;
static void Main(string[] args)
{
Data_Storage user = new Data_Storage(userFirst, userLast, userGender, userAge);
Console.WriteLine("Please input First Name: ");
userFirst = Console.ReadLine();
Console.WriteLine("Please input Last Name: ");
userLast = Console.ReadLine();
Console.WriteLine("Please input Gender: ");
userGender = Console.ReadLine();
Console.WriteLine("Please input Age: ");
userAge = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(user.ToString());
}
代码表 2
using System;
using System.Collections.Generic;
using System.Text;
namespace DataBase
{
class Data_Storage
{
public string firstName { get; set; }
public string lastName { get; set; }
public string gender { get; set; }
public int age { get; set; }
//Implicitly
public Data_Storage()
{
firstName = "First";
lastName = "Last";
gender = "Null";
age = 0;
}
//Instance constructor
public Data_Storage(string userFirst, string userLast, string userGender, int userAge)
{
this.firstName = userFirst;
this.lastName = userLast;
this.gender = userGender;
this.age = userAge;
}
public override string ToString()
{
return String.Format(this.firstName + "\n" + this.lastName + "\n" + this.gender + "\n" + this.age);
}
}
}
在测试这段代码时,它只会返回我创建的默认构造函数,而不是引用我的实例构造函数。
【问题讨论】:
-
看起来您正在创建
Data_Storage类的实例之前您在传递给构造函数的变量中设置了任何值。您应该在用户输入值之后创建实例。 -
在输入变量之前,您正在使用变量创建
user实例。 -
你真的需要学习how to use a debugger。
标签: c# class oop inheritance prompt