访问实例对象中的实例对象

时间:2015-08-20 15:41:28

标签: c# unity3d instance inventory

对C#来说非常新,并试图从.tsv文件创建一个简单的库存

我有一个脚本(文本解析器),它读取文件,创建一个名为“TableData”的对象实例,并将所有数据传输到此实例。

文本解析器的相关部分如下所示:

public class TextParser : MonoBehaviour {
...
...

            line = reader.ReadLine();
            string[] tableKey = line.Split('\t');

            line = reader.ReadLine();
            string[] typeKey = line.Split('\t');

            line = reader.ReadLine();
            string[] entries = line.Split('\t');

            TableData tableData = new TableData(tableKey,typeKey,entries);
...
...

*稍后在脚本中我有一个循环,它将每个附加行添加到该实例

的列表中

TableData脚本只有3个字段:2个字符串数组和1个字符串数组列表:

public class TableData : MonoBehaviour
{
    public string[] tableKey;
    public string[] tableType;
    public List<string[]> excelData = new List<string[]>();


    public TableData(string[] _tableKey, string[] _tableType, string[] entries)
    {
        tableKey = _tableKey;
        tableType = _tableType;

        excelData.Add (entries);
    }
}

所以问题是,如果我实例化'TextParser'类的对象(在运行时),反过来它实例是'TableData'类的对象 - 我如何访问'tableData'实例中的数据?

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

    public class TableData : MonoBehaviour
    {
        public string[] tableKey;
        public string[] tableType;
        public DataTable dt = new DataTable();

        public TableData()
        {
            dt.Columns.Add("Key", typeof(string));
            dt.Columns.Add("Type", typeof(string));
            dt.Columns.Add("Entry", typeof(string));
        }


        public TableData(string[] _tableKey, string[] _tableType, string[] entries)
        {

            for (int i = 0; i < _tableKey.Length; i++)
            {
                dt.Rows.Add(new object[] { _tableKey[i], _tableType[i], entries[i] });
            }

        }
    }
​

答案 1 :(得分:0)

公开,并在class范围内

public class TextParser : MonoBehaviour {
    //...
    public TableData tableData;
    //...
}

然后你就做了

TextParser tp;
TableData tableData = tp.tableData;
// Do something