使用枚举将文本添加到文件

时间:2015-12-10 03:04:54

标签: c# visual-studio enums

我无法尝试调用我的类对象,因此我可以显示枚举和后面的消息。我已经为类完成了所有代码(我认为),但是我在静态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");
    }
}

}

2 个答案:

答案 0 :(得分:0)

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

function simpan nilai(){
    $jumlah = $this->input->post('rowcount');
    $x=1;
    while($x<=$jumlah){
      $this->db->query("INSERT INTO nilai SET
                  id_peserta = '".$this->input->post('id_peserta' + $x)."',
                  id_un = '".$this->input->post('id_un' + $x)."',
                  nilai = '".$this->input->post('nilai' + $x)."' ");
      $x++;
    }
    return "info-Data berhasil disimpan ...";
}

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

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

答案 1 :(得分:0)

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()签名,但这不是焦点。