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

本文关键字:实例 对象 访问 | 更新日期: 2023-09-27 18:09:01

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'实例中的数据?

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

试试这样

    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] });
            }
        }
    }
​

将其设为public,并在class范围内

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

那你就直接写

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