将文本添加到具有枚举的文件中

本文关键字:枚举 文件 文本 添加 | 更新日期: 2023-09-27 18:26:16

我在尝试调用类对象时遇到问题,因此我可以显示枚举和随后的消息。我已经完成了该类的所有代码(我想),但在静态void main中遇到了问题。如何在tWrite方法中添加Enum作为参数。我知道我的代码有问题,我只是不知道它在哪里。这是我当前的代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
namespace Logging
{
public class Log
{
    public enum Levels { Debug, Warn, Info, Error};
    private string path = @"C:'Users'eliotta1130'Desktop'CSharp'Labs'Logging.txt";
    //public string Path { get; set; }
    //public Levels Levels { get; set; }
    public Log(string path)
    {
        this.path = path;
        if(!File.Exists(path))
        {
            File.Create(path);
        }
        StreamWriter textOut = new StreamWriter( new FileStream(
                                                path, FileMode.Open, FileAccess.Write));
        textOut.WriteLine(DateTime.Now);
        textOut.Close();
    }
    public void tWrite(Levels levels, string message)
    {
        StreamWriter fs = new StreamWriter( new FileStream(path, FileMode.Append, FileAccess.Write));
        fs.WriteLine(string.Format("{0}, {1}", DateTime.Now.ToString("HH:mm:ss.ffff")), message);
        fs.Close();
    }
}
}

这是我试图调用类对象的地方。

namespace Logging
{
class Logging
{
    static void Main(string[] args)
    {
        Log files = new Log("Logging.txt");
        files.tWrite( , "Fix the problem");
    }
}

}

将文本添加到具有枚举的文件中

您在另一个类中有枚举,所以您可以这样调用它:

files.tWrite(Log.Levels.Warn, "Fix the problem");

或者将它移到类之外,但将其保留在同一名称空间中,并这样调用它:

files.tWrite(Levels.Warn, "Fix the problem");

Grant答案的另一种方法是在Log类中定义枚举的实例:

 public Levels LogLevel {get;set;}
 static void Main(string[] args)
 {
    Log files = new Log("Logging.txt");
    files.LogLevel = Log.Levels.Warn;
    files.tWrite("Fix the problem");
 }

当然,您需要相应地修改tWrite()签名,但这不是重点。