对于我的应用程序需要将一些数据存储在与所述属性(一个数组string main,string[] status我nt curParCount等).
我目前将它存储在这个类中:
class Repository
{
public static Rep[] rep = new Rep[6];
public struct Rep
{
public string main;
public string clean;
public int curParCount;
public int totalCount;
public int parStart;
public int partialStart;
public double scrollPos;
public int selectionStart;
public int selectionEnd;
public string[] status;
}
public static string repName()
{
string name;
if (MainWindow.repnum == 0)
{ name = "Main Text"; }
else { name = "Repository " + MainWindow.repnum; }
return name;
}
public static string getStatus(int repNum, int statNum)
{
return rep[repNum].status[statNum];
}
}
Run Code Online (Sandbox Code Playgroud)
这是我这样做的正确方法吗?肯定不会有这种感觉.
基本的想法很好.实施可以改进.特别是,我担心你有一个可变结构; 要么使它不可变,要么把它变成一个类.我还建议使用自动支持字段将公共字段更改为公共属性(然后将名称置于上限).
编辑
这是我的版本:
class Repository
{
public class Rep
{
public string Main {get; set;}
public string Clean {get; set;}
public int CurParCount {get; set;}
public int TotalCount {get; set;}
public int ParStart {get; set;}
public int PartialStart {get; set;}
public double ScrollPos {get; set;}
public int SelectionStart {get; set;}
public int SelectionEnd {get; set;}
public string[] Statuses {get; set;}
}
public const int StatusCount = 6;
public static List<Rep> Reps = new List<Rep>();
public static string Name
{
get
{
if (MainWindow.repnum == 0)
return "Main Text";
return "Repository " + MainWindow.repnum;
}
}
public static string GetStatus(int repIndex, int statIndex)
{ return Reps[repIndex].Status[statIndex]; }
}
Run Code Online (Sandbox Code Playgroud)