1

初めてテキストファイルを読むことができます。次に同じテキスト ファイルを読み込もうとすると、関数が終了し、null 値が返されます。

    static string configData = "";
    async public void readtextFile(string folder, string file)
    {
        StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync(folder);
        StorageFile storageFile = await storageFolder.GetFileAsync(file);
        configData = await FileIO.ReadTextAsync(storageFile);
    }

この問題を解決する方法を教えてください..

ありがとうございます

4

1 に答える 1

4

readtextFileそれは非同期メソッドであることを忘れないでください。呼び出すと、実際には最初に到達したときに戻るawaitので、この時点configDataではまだ設定されていません。メソッドから値を返し、メソッドを待つ必要があります。

async public Task<string> readtextFile(string folder, string file)
{
    StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync(folder);
    StorageFile storageFile = await storageFolder.GetFileAsync(file);
    string configData = await FileIO.ReadTextAsync(storageFile);
    return configData;
}

...

string configData = await readTextFile(folder, file);

configDataフィールドに保存する場合でもawait readtextFile、値を読み取る前に保存する必要があります。

于 2012-05-09T08:26:05.997 に答える