将文本添加到具有枚举的文件中
本文关键字:枚举 文件 文本 添加 | 更新日期: 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()签名,但这不是重点。