Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从一个类中获取值并在另一个类中使用?_C#_Streamwriter - Fatal编程技术网

C# 如何从一个类中获取值并在另一个类中使用?

C# 如何从一个类中获取值并在另一个类中使用?,c#,streamwriter,C#,Streamwriter,我对这个很陌生,但我有3个类,其中一个使用命令行让用户按1或2回答问题,然后我使用get;设置以在其他类中收集该信息 我想把这些信息写进一个文本文档。问题是,我使用的类StreamWriter无法识别我在另一个类中用于定义信息的单词。任何帮助都会很好。这就是我想要的信息 StreamWriter writer = new StreamWriter(@"C:\Users\Dan\Documents\testText.txt"); writer.WriteLine("Passenger Inform

我对这个很陌生,但我有3个类,其中一个使用命令行让用户按1或2回答问题,然后我使用
get;设置
以在其他类中收集该信息

我想把这些信息写进一个文本文档。问题是,我使用的类
StreamWriter
无法识别我在另一个类中用于定义信息的单词。任何帮助都会很好。这就是我想要的信息

StreamWriter writer = new StreamWriter(@"C:\Users\Dan\Documents\testText.txt");
writer.WriteLine("Passenger Information" //want the SeatSelection in here);
writer.Close();    
原始信息来自这里。虽然在这段代码中,它正在识别单词“SeatSelection”?为什么它能在这里识别而不能在上面识别

Console.Clear();
Console.WriteLine("Please select first or third class for your trip. ");
Console.WriteLine("1) First Class Compartment.");
Console.WriteLine("2) Third Class with Compartments.");
Console.WriteLine("3) Car C Open seating.");
Console.WriteLine("4) Car D Open seating.");
Console.WriteLine("5) Return to booking main menu.");
bool validInput = false;

do
{
    validInput = true;
    ConsoleKeyInfo key = Console.ReadKey();
    switch (key.Key)
    {
        case ConsoleKey.D1:
        case ConsoleKey.NumPad1:
            seatClass.SeatSelection = "First Class";
            FirstClass();
            break;
        case ConsoleKey.D2:
        case ConsoleKey.NumPad2:
            seatClass.SeatSelection = "Third Class Compartment";
            ThirdClassCompartments();
             break;

我不确定您的应用程序结构是什么,但您需要以下内容:

var seatClass = UserInterface.GetSeatClass();

StreamWriter writer = new StreamWriter(@"C:\Users\Dan\Documents\testText.txt");
writer.WriteLine("Passenger Information" + seatClass.SeatSelection);
writer.Close();
…其中,我创造性地插入了imaginery UserInterface静态类,该类从其GetSeatClass方法返回SeatClass的新实例:

public static class UserInterface
{
    public static SeatClass GetSeatClass()
    {
        var seatClass = new SeatClass();

        //code here that assigns values to seatClass

        return seatClass;
    }
}
我可以用更多的信息给你一个更好的答案。请不要犹豫问任何问题。(很抱歉,刚开始时我使用了静态类。如果需要,我可以解释。)

您可以使用这个

var filePath = @"C:\Users\Dan\Documents\testText.txt";
var lines = new[] {"a line content"};
System.IO.File.AppendAllLines(filePath, lines);

而不是StreamWriter的东西。

听起来你缺少了对
seatClass
的引用。如果您显示了所有代码,这将非常有用,其中包括在本例中使用指令、名称空间、类名和方法名,包括
Seat
类的信息。您是否有可能更新代码,以便我们可以看到您的整个类。基本上,您希望获得Seat类的适当实例,然后在WriteLine语句中使用该实例。当问题发生变化时,不要更改问题,当原始问题不再足够时,请提出新问题。如果您确实更改了问题,则答案不再有效,这对任何人都没有帮助。这不是对他的问题的答案。@所讨论的StijnvanGaal问题与StreamWriter直接相关,而更简单的选择则在该答案中。因此,它可以解决问题。(如果问题是你饿了,不能吃肉,那么吃其他替代品可以解决你的饥饿问题,对吗?)好吧,我在MSDN上找到了一些东西,我设法把一些东西组合起来,但现在它只在文本文件中写了一行?我会把代码放在我的问题里,对于这个评论来说太长了:太好了。我来看看。