public class LogWriter:StreamWriter
    {
        private FileStream _FileStream;
        private LogWriter(Stream stream)
            : base(stream)
        {        }
        public LogWriter()
        {
            //判断目录是否存在,不存在则创建
            string dir = GetLogDir();
            if (Directory.Exists(dir) == false)
            {
                Directory.CreateDirectory(dir);
            }
            //打开文件,不存在则创建
            string path = GetLogFilePath();
            _FileStream = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
        }
        private  string GetLogDir()
        {
            return Path.Combine(Application.StartupPath, "log");
        }
        private  string GetLogFilePath()
        {
            return Path.Combine(GetLogDir(), string.Format("log{0}.txt",DateTime.Now.ToString("yyyyMMdd")));
        }
    }
我想实现LogWriter()这个空的构造函数,不知道怎么弄?

解决方案 »

  1.   

    当场做的,基本满足你的需要,功能的完善有待你自己来了。    public class LogWriter:TextWriter
        {
            StreamWriter sw;
            public LogWriter()
            {
                string dir = GetLogDir();
                if (Directory.Exists(dir) == false)
                {
                    Directory.CreateDirectory(dir);
                }
                //打开文件,不存在则创建
                string path = GetLogFilePath();
                sw = new StreamWriter(path);
            }
            private string GetLogDir()
            {
                return Path.Combine(Application.StartupPath, "log");
            }
            private string GetLogFilePath()
            {
                return Path.Combine(GetLogDir(), string.Format("log{0}.txt", DateTime.Now.ToString("yyyyMMdd")));
            }        public override void Write(string value)
            {
                sw.Write(value);
            }        //VS中敲入override+空格,然后选择需要重载的函数,重载方法调用sw对应的方法即可。
        }
      

  2.   

    就是因为StreamWriter中重载的方法很多,我不想override,所以想直接继承过来,不知道能不能解决