⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.cs

📁 这是用VC编写的一个关于计算器的代码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml.Serialization;

namespace ProgramCalculator
{
    class Function
    {
        public static readonly string FunctionNameSpace = "FunctionNameSpace";
        public static readonly string FunctionClassName = "FunctionClass";
        private static FunctionInfoCollection collectionOfFunctionInfo = new FunctionInfoCollection();//保存目前所有的函数信息

        /// <summary>
        /// using文件(.us)的备份
        /// </summary>
        public static string UsingFileBackup = null;
       
        

        /// <summary>
        /// 保存目前所有的函数信息
        /// </summary>
        public static FunctionInfoCollection CollectionOfFunctionInfo
        {
            get
            {
                return collectionOfFunctionInfo;
            }
            set
            {
                collectionOfFunctionInfo = value;
            }
        }

        
        
        /// <summary>
        /// 保存所有函数相关文件的文件夹,如果不存在则创建
        /// </summary>
        public static string DirectoryOfFunctions
        {
            get
            {
                string dir = Application.StartupPath + Path.DirectorySeparatorChar + "Functions";
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }
                return dir;
            }
        }

        /// <summary>
        /// 保存函数列表的列表文件的完整路径,如果不存在则创建
        /// </summary>
        public static string PathOfFunctionsListFile
        {
            get
            {
                string path = Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "FuncionsList.xml";
                if (!File.Exists(path))
                {
                    File.Create(path);
                }

                return path;
            }
        }


        /// <summary>
        /// 获取函数dll的完整路径,该路径不一定存在;
        /// </summary>
        public static string GetPathOfFunctionDll()
        {
            return Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "Functions.dll";
        }

        /// <summary>
        /// 获取最新的函数dll的完整路径,该路径不一定存在;
        /// </summary>
        public static string GetPathOfNewFunctionDll()
        {
            string dir = Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "New_FunctionsDll";
            if(!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            return dir + Path.DirectorySeparatorChar + "Functions.dll";
        }

        /// <summary>
        /// 获取函数代码文件的 相对 路径,该路径不一定存在.(如果要使用绝对路径,请在前面加上Function.DirectoryOfFunctions);
        /// </summary>
        /// <param name="functionName">函数名</param>
        public static string GetRelativePathOfFunctionCodeFile(string functionName)
        {
            return Path.DirectorySeparatorChar + functionName + ".cf";
        }

        /// <summary>
        /// 获取保存所有using语句的文本文件,如果不存在则创建
        /// </summary>
        public static string GetPathOfUsingFile()
        {
            string path =  Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "using.us";
            if ( !File.Exists(path) )
            {
                StreamWriter sw = new StreamWriter(path, false, Encoding.Default);
                try
                {
                    if (String.IsNullOrEmpty(Function.UsingFileBackup))
                    {
                        sw.WriteLine("using System;");
                    }
                    else
                    {
                        sw.Write(Function.UsingFileBackup);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("error at GetPathOfUsingFile():\n" + ex);
                }
                finally
                {
                    sw.Close();
                }
            }

            return path;
        }

        /// <summary>
        /// 获取保存名字空间和类头语句的文本文件(.ch),如果不存在则创建
        /// </summary>
        public static string GetPathOfClassHeaderFile()
        {
            string path =  Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "classHeader.ch";

            if (!File.Exists(path))
            {
                StreamWriter sw = new StreamWriter(path, false, Encoding.Default);
                try
                {
                    string s =
                        Environment.NewLine +
                        "namespace " + Function.FunctionNameSpace + Environment.NewLine +
                        "{" + Environment.NewLine +
                        "   public class " + Function.FunctionClassName + Environment.NewLine +
                        "   {" + Environment.NewLine;

                    sw.WriteLine(s);
                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show("error at GetPathOfClassHeaderFile():\n" + ex);
                }
                finally
                {
                    sw.Close();
                }
            }

            return path;
        }

        /// <summary>
        /// 获取保存名字空间和类尾语句的文本文件(.ct),如果不存在则创建
        /// </summary>
        public static string GetPathOfClassTailFile()
        {
            string path = Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "classTail.ct";

            if (!File.Exists(path))
            {
                StreamWriter sw = new StreamWriter(path, false, Encoding.Default);
                try
                {
                    string s =
                        Environment.NewLine +
                        "   }//class_end " + Environment.NewLine +
                        "}//namespace_end" + Environment.NewLine;

                    sw.WriteLine(s);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("error at GetPathOfClassHeaderFile():\n" + ex);
                }
                finally
                {
                    sw.Close();
                }
            }

            return path;
            
        }

        /// <summary>
        /// 序列化函数到列表
        /// </summary>
        public static bool SaveFunctionsToList()
        {
            string listPath = Function.PathOfFunctionsListFile;
            StreamWriter sw = new StreamWriter(listPath, false);
            XmlSerializer serialiser = new XmlSerializer(typeof(FunctionInfoCollection));
           
            try
            {
                serialiser.Serialize(sw, Function.CollectionOfFunctionInfo);
            }
            catch (Exception ex)
            {
                MessageBox.Show("序列化函数到列表时出错:\n" + ex.ToString());
                return false;
            }
            finally
            {
                sw.Close();
            }
            
            return true;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -