using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public struct Test {
public string testString { get; set; }
public Test(string TestString) {
testString = TestString;
}
}
public class arrayTest : MonoBehaviour {
void Start() {
object[] array = new object[2];
Test tester = new Test("hello");
array[0] = tester;
Debug.Log(array[0].testString);
}
}
我對 C# 很陌生,如果這是一個愚蠢的問題,我很抱歉。這只是我的主程式的簡化版本,但我不斷收到相同的錯誤,即
“object”不包含“testString”的定義,并且找不到接受“object”型別的第一個引數的可訪問擴展方法“testString”(您是否缺少 using 指令或程式集參考?)
如果物件不在陣列中,它可以正常作業,但是一旦存在,它就會給我這個。我也試過使用 TestString 但無濟于事。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
你的問題就在這里;
object[] array = new object[2];
一旦在該陣列中,您的 Test 物件就被隱式轉換為“普通”物件,因此您只能使用它對任何普通物件執行操作。
如果您想要一組 Test 物件,請改為執行此操作;
Test[] array = new Test[2];
或者更簡潔地說,
var array = new Test[2];
uj5u.com熱心網友回復:
你必須將物件類轉換為測驗器的測驗結構,因為陣列是一個物件類并且沒有 testString 屬性
Debug.Log( ((Test) array[0]).testString );
或者如果您不需要使用任何其他類,則以這種方式定義陣列
Test[] array = new Test[2];
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/384548.html
上一篇:js從陣列中獲取月份和年份
