c# - 提示用户通过多个类输入数据信息
问题描述
我正在尝试使用 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);
}
}
}
在测试这段代码时,它只会返回我创建的默认构造函数,而不是引用我的实例构造函数。
解决方案
代替:
userFirst = Console.ReadLine();
做这个:
user.firstName = Console.ReadLine();
并对所有其他属性重复此操作。这将解决您的问题。您还可以删除整个构造函数,而不是这样:
Data_Storage user = new Data_Storage(userFirst, userLast, userGender, userAge);
做这个:
var user = new Data_Storage();
你也可以删除这个:
static string userFirst, userLast, userGender;
static int userAge;
推荐阅读
- c++ - 对“__std_terminate”的未定义引用
- mysql - 我如何将此查询转换为子查询 SQL
- android - 我如何在 Surfaceview 上绘制任何已经渲染相机预览的线?
- java - java.lang.Integer 不能转换为 java.math.BigInteger
- php - 如果其中之一设置为 true php,则为非活动数据库字段
- android - PopMenu 项目空白
- debian - geoip 模块在 debian 中无法正常工作
- java - 用 ArrayList 填充 TableView(列和数据)
- python - PSO 可以收敛于非零导数的点吗?
- python - 使用烧瓶 wtforms 中的 SubmitField 与 html 提交按钮有什么优点/缺点?