我正在写一个地铁应用程序。我正在尝试读取文件并从数据中返回一个 float[]。但无论我做什么,该函数似乎都返回null。我已经尝试过类似问题的解决方案,但没有运气。
例如,如果我使用:
float[] floatArray = new ModelReader("filename.txt").ReadModel()
结果将是一个空数组。
但是,如果我使用:
new ModelReader("filename.txt")
正确的数组将打印到控制台,因为“Test”还会在返回数组之前打印数组。这对我来说似乎很奇怪。
请给我一些指导,我不知道出了什么问题。
public class ModelReader
{
float[] array;
public ModelReader(String name)
{
ReadModelAsync(name);
}
public float[] ReadModel()
{
return array;
}
private async Task ReadModelAsync(String name)
{
await readFile(name);
}
async Task readFile(String name)
{
// settings
var path = @"Assets\models\" + name;
var folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
// acquire file
var file = await folder.GetFileAsync(path);
// read content
var read = await Windows.Storage.FileIO.ReadTextAsync(file);
using (StringReader sr = new StringReader(read))
{
Test test = new Test(getFloatArray(sr));
this.array = test.printArray();
}
}
private float[] getFloatArray(StringReader sr) { ... }
public class Test
{
public float[] floatArray;
public Test(float[] floatArray)
{
this.floatArray = floatArray;
}
public float[] printArray()
{
for (int i = 0; i < floatArray.Length; i++)
{
Debug.WriteLine(floatArray[i]);
}
return floatArray;
}
}