?? function.cs
字號(hào):
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();//保存目前所有的函數(shù)信息
/// <summary>
/// using文件(.us)的備份
/// </summary>
public static string UsingFileBackup = null;
/// <summary>
/// 保存目前所有的函數(shù)信息
/// </summary>
public static FunctionInfoCollection CollectionOfFunctionInfo
{
get
{
return collectionOfFunctionInfo;
}
set
{
collectionOfFunctionInfo = value;
}
}
/// <summary>
/// 保存所有函數(shù)相關(guān)文件的文件夾,如果不存在則創(chuàng)建
/// </summary>
public static string DirectoryOfFunctions
{
get
{
string dir = Application.StartupPath + Path.DirectorySeparatorChar + "Functions";
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
return dir;
}
}
/// <summary>
/// 保存函數(shù)列表的列表文件的完整路徑,如果不存在則創(chuàng)建
/// </summary>
public static string PathOfFunctionsListFile
{
get
{
string path = Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "FuncionsList.xml";
if (!File.Exists(path))
{
File.Create(path);
}
return path;
}
}
/// <summary>
/// 獲取函數(shù)dll的完整路徑,該路徑不一定存在;
/// </summary>
public static string GetPathOfFunctionDll()
{
return Function.DirectoryOfFunctions + Path.DirectorySeparatorChar + "Functions.dll";
}
/// <summary>
/// 獲取最新的函數(shù)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>
/// 獲取函數(shù)代碼文件的 相對(duì) 路徑,該路徑不一定存在.(如果要使用絕對(duì)路徑,請(qǐng)?jiān)谇懊婕由螰unction.DirectoryOfFunctions);
/// </summary>
/// <param name="functionName">函數(shù)名</param>
public static string GetRelativePathOfFunctionCodeFile(string functionName)
{
return Path.DirectorySeparatorChar + functionName + ".cf";
}
/// <summary>
/// 獲取保存所有using語(yǔ)句的文本文件,如果不存在則創(chuàng)建
/// </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>
/// 獲取保存名字空間和類頭語(yǔ)句的文本文件(.ch),如果不存在則創(chuàng)建
/// </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>
/// 獲取保存名字空間和類尾語(yǔ)句的文本文件(.ct),如果不存在則創(chuàng)建
/// </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>
/// 序列化函數(shù)到列表
/// </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("序列化函數(shù)到列表時(shí)出錯(cuò):\n" + ex.ToString());
return false;
}
finally
{
sw.Close();
}
return true;
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -