如何使用 StorageFolder 变量类型创建一个新对象?
How to create a new object with StorageFolder variable type?
所以我有一个错误"Object reference not set to an instance of an object"。
这是发生错误的区域:
private async void Savebutton_click(object sender, RoutedEventArgs e)
{
string recipename = recipenametextbox.Text.ToString();
string recipemethod = methodtextbox.Text.ToString();
string recipeingredients = ingredientstextbox.Text.ToString();
//File names.
string recipenamefilename = recipename + "title.txt";
string recipemethodfilename = recipename + "method.txt";
string recipeingredientsfilename = recipename + "ingredients.txt";
await currentrecipe.folder.CreateFolderAsync(recipename);
await currentrecipe.folder.CreateFileAsync(recipenamefilename);
File.WriteAllText(recipenamefilename, recipename);
await currentrecipe.folder.CreateFileAsync(recipemethodfilename);
File.WriteAllText(recipemethodfilename, recipemethod);
await currentrecipe.folder.CreateFileAsync(recipeingredientsfilename);
File.WriteAllText(recipeingredientsfilename, recipeingredients);
//Clear currentrecipe ready for next recipe.
currentrecipe.folder = null;
currentrecipe.Picturefile = null;
currentrecipe.recipebackgroundcolourenabled = false;
}
我假设这与初始化 currentrecipe 变量的 StorageFolder 成员有关(currentrecipe 是一个 recipie 变量)。此外,我不认为它是 NullReferanceException 问题的重复,仅仅是因为我知道 NullReferanceException 是什么,并且我知道如何以某种方式修复它,但我不知道如何为此修复它特定的 NullReferanceException - 用于存储文件夹。错误也发生在 await currentrecipe.folder.CreateFolderAsync(recipename) 处。
这是我的收件人 class:
public sealed class recipie
{
public StorageFile Picturefile;
public StorageFolder folder;
public bool recipebackgroundcolourenabled;
}
如你所说错误发生在
await currentrecipe.folder.CreateFolderAsync(recipename)
我首先检查 currentrecipe
和 folder
是否都已初始化:
if (currentrecipe != null)
{
if (currentrecipe.folder != null)
{
await currentrecipe.folder.CreateFolderAsync(recipename)
}
else
{
Console.Write("currentrecipe.folder is null")
}
}
else
{
Console.Write("currentrecipe is null")
}
至少从那个开始,否则可能是 CreateFolderAsync returns null。
所以我有一个错误"Object reference not set to an instance of an object"。
这是发生错误的区域:
private async void Savebutton_click(object sender, RoutedEventArgs e)
{
string recipename = recipenametextbox.Text.ToString();
string recipemethod = methodtextbox.Text.ToString();
string recipeingredients = ingredientstextbox.Text.ToString();
//File names.
string recipenamefilename = recipename + "title.txt";
string recipemethodfilename = recipename + "method.txt";
string recipeingredientsfilename = recipename + "ingredients.txt";
await currentrecipe.folder.CreateFolderAsync(recipename);
await currentrecipe.folder.CreateFileAsync(recipenamefilename);
File.WriteAllText(recipenamefilename, recipename);
await currentrecipe.folder.CreateFileAsync(recipemethodfilename);
File.WriteAllText(recipemethodfilename, recipemethod);
await currentrecipe.folder.CreateFileAsync(recipeingredientsfilename);
File.WriteAllText(recipeingredientsfilename, recipeingredients);
//Clear currentrecipe ready for next recipe.
currentrecipe.folder = null;
currentrecipe.Picturefile = null;
currentrecipe.recipebackgroundcolourenabled = false;
}
我假设这与初始化 currentrecipe 变量的 StorageFolder 成员有关(currentrecipe 是一个 recipie 变量)。此外,我不认为它是 NullReferanceException 问题的重复,仅仅是因为我知道 NullReferanceException 是什么,并且我知道如何以某种方式修复它,但我不知道如何为此修复它特定的 NullReferanceException - 用于存储文件夹。错误也发生在 await currentrecipe.folder.CreateFolderAsync(recipename) 处。
这是我的收件人 class:
public sealed class recipie
{
public StorageFile Picturefile;
public StorageFolder folder;
public bool recipebackgroundcolourenabled;
}
如你所说错误发生在
await currentrecipe.folder.CreateFolderAsync(recipename)
我首先检查 currentrecipe
和 folder
是否都已初始化:
if (currentrecipe != null)
{
if (currentrecipe.folder != null)
{
await currentrecipe.folder.CreateFolderAsync(recipename)
}
else
{
Console.Write("currentrecipe.folder is null")
}
}
else
{
Console.Write("currentrecipe is null")
}
至少从那个开始,否则可能是 CreateFolderAsync returns null。