【发布时间】:2018-04-16 22:46:13
【问题描述】:
下午 -> 上午;基本上我目前在“使用系统”和“使用 System.Collection.Generic”中遇到 IEquatable 的问题,基本上这个任务的目的是让用户选择一个数据库并发送输入;我让他们通过我测试过的基本字符串发送输入并且它有效。尽管我的问题纯粹是视觉问题,而且数据似乎也在列表中累积;那么发生了什么 {} 获取最后一个输入字符串并将其复制并再次发送它并复制最后几个输入并将它们与新输入一起发送;它采用了以前的功能,并且好像它是一种我个人认为不会的递归方法。
internal class _Command : IEquatable<_Command>
{
public string _SQLiteCOMMAND { get; set; }
public int _SQLiteCOMMAND_CNT { get; set; }
public override string ToString() { return "Command Number : " + _SQLiteCOMMAND_CNT + "\n Command : " + _SQLiteCOMMAND; }
public override int GetHashCode() { return _SQLiteCOMMAND_CNT; }
public override bool Equals(object obj)
{
if (obj == null) return false;
_Command CMD_OBJ = obj as _Command;
if (CMD_OBJ == null) return false;
else return Equals(CMD_OBJ);
}
public bool Equals(_Command ETC)
{
if (ETC == null) return false;
return (this._SQLiteCOMMAND_CNT.Equals(ETC._SQLiteCOMMAND_CNT));
}
}
基本上我在这里所做的是设置一个 IEquatable 表来保存我的列表,而不是一个通用的新字符串列表;我已经尝试过,但我得到的响应越来越慢。
public void _SendQueryCOMMAND(int id)
{
_Database.Add(new _Command() { _SQLiteCOMMAND = _ConsoleCommandInput, _SQLiteCOMMAND_CNT = _CMDval+1 });
_ConsoleLoggerUpdate();
}
这是我如何将命令发送到数据库的 sn-p,它有一个输出显示命令编号,所以如果我发送 3 个命令,它会说我发送了命令“3”或我个人的“2”;
public void _ConsoleLoggerUpdate()
{
foreach (_Command _SQLiteCommand in _Database)
{
_ConsoleCommandInput += _SQLiteCommand + "\n";
}
}
这就是我将数据格式化到列表中的方式,使用 foreach 语句将每个格式化命令添加到该列表的新行中。
_ConsoleCommandWindow = EditorGUILayout.TextArea(_ConsoleCommandInput, GUILayout.Width(position.width - 5), GUILayout.Height(75));
这就是我的数据作为输入数据被格式化到一个窗口中的方式
public void _outputConsole(int id)
{
GUILayout.Label("Current Input Text :" + _ConsoleCommandInput);
GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) });
}
这就是我为输出格式化信息的方式
我已经阅读并尝试使用 Array's 和 Lists 关于我能想到的至少 50 种不同的方式,即使通过阅读文档并遵循甚至复制和粘贴并尝试使其工作我一直有相同的“我目前遇到的递归”问题。
https://msdn.microsoft.com/en-us/library/x303t819(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx
【问题讨论】:
标签: c# unity3d recursion arraylist