我是C#的新手,我正在尝试解决以下问题:
编写至少包含4种方法的程序。第一种方法应该 显示说明,第二种方法应由用户输入 (名字和课程名称),第三个方法应采用 用户输入(3项考试得分并得到其平均值),以及最后一种方法 是向用户显示消息以及所有用户信息 并将计算结果返回。调用您主体中的4种方法。
我已经编辑了帖子,因为我只需要关注我所遇到的问题。所以我在调用DisplayCalculationAndResult方法时遇到问题。我正在做的是创建一种获取用户输入的方法,在另一种方法中,我正在打印您的信息,但是当我称其正确时,用于结果的方法需要一个参数!好的,我不明白为什么会引发问题,但是我叫另一个方法具有其他参数并且可以> <或因为它是字符串而起作用!?
这就是正在得到的
使用未分配的局部变量“ firstName”
使用未分配的局部变量“ lastName”
使用未分配的局部变量“ courseName”
请有人帮忙。
这是我的代码:
using System;
using System.Security.Cryptography.X509Certificates;
namespace work3
{
class Work3Calculatore
{
static void Main(string[] args)
{
// Declare Variable
string firstName, lastName, courseName;
// calculate and Display result
DisplayCalculationAndResult(firstName, lastName, courseName);
Console.ReadKey();
}
public static void AskTheUserForValues()
{
//string inputValue; // global variable
string courseName, firstName, lastName; // needed in this method only
Console.WriteLine(" Please Enter the Your First Name: {0} ");
firstName = Console.ReadLine();
//inputValue = Console.ReadLine();
Console.WriteLine(" Please Enter the Your Last Name: {0}");
lastName = Console.ReadLine();
//inputValue = Console.ReadLine();
Console.WriteLine(" Please Enter the Course Name: {0}");
courseName = Console.ReadLine();
//inputValue = Console.ReadLine();
}
public static void DisplayCalculationAndResult(string firstName, string lastName, string courseName)
{
Console.WriteLine();
Console.WriteLine(" Your first name is: ");
Console.WriteLine(" {0:N2 ", firstName);
Console.WriteLine(" Your last name is: ");
Console.WriteLine(" {0:N2} ", lastName);
Console.WriteLine(" Your course is: ");
Console.WriteLine(" {0:N2}", courseName);
Console.ReadKey();
}
}
}
答案 0 :(得分:1)
错误:
在您的main
方法中,您声明了三个变量,从不为其分配任何内容,然后尝试使用它们:
string firstName, lastName, courseName;
DisplayCalculationAndResult(firstName, lastName, courseName);
错误只是告诉您您无法执行此操作。在使用变量之前,必须为其分配一个值(即使只是null
)。例如:
string firstName = null, lastName = null, courseName = null;
DisplayCalculationAndResult(firstName, lastName, courseName);
您的下一步:
看起来像,您打算从AskTheUserForValues
方法中获取这些值。但是,有两个问题显而易见:
您可以让该方法返回那些值,可能是通过创建一个保存它们的类。假设您为这三个值创建了一个单独的类作为数据结构(我猜是一个好的类名,请适当命名您的名字):
public class Student
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string CourseName { get; set; }
}
然后您的AskTheUserForValues
方法可以将这些值作为该类的实例返回:
public static Student AskTheUserForValues() // set the return type
{
var result = new Student(); // create an instance of the object
// populate the fields on that instance
Console.WriteLine(" Please Enter the Your First Name: {0} ");
result.FirstName = Console.ReadLine();
Console.WriteLine(" Please Enter the Your Last Name: {0}");
result.LastName = Console.ReadLine();
Console.WriteLine(" Please Enter the Course Name: {0}");
result.CourseName = Console.ReadLine();
return result; // return the instance
}
然后您的main
方法可以通过调用该方法来获得结果:
static void Main(string[] args)
{
var values = AskTheUserForValues();
DisplayCalculationAndResult(values.FirstName, values.LastName, values.CourseName);
Console.ReadKey();
}
作为熟悉类如何作为简单数据结构使用的一项附加练习,从这里尝试修改DisplayCalculationAndResult
方法以接受新类的实例,而不是分别接受三个值。