gpt4 book ai didi

c# - 从类的 void 获取字符串值无法正确输出

转载 作者:行者123 更新时间:2023-12-04 08:13:05 24 4
gpt4 key购买 nike

我有一个类,稍后我将其作为 Listbox 上的 ItemsSource 进行 Hook 。这个列表框有一个项目,它有一个图像绑定(bind)“{Binding LocalImage}”。问题是,当 Item 从 LocalImage 获取值时,它不应该返回 null 值。 void doesImageExistLocally 可以完美运行,并且已经在另一个项目上进行了测试。
从 Main void 单独调用它确实正确输出了图像的路径,因此它不是 void 的问题,而是类/列表框项目获取值的问题。还需要注意字符串 Image 也被正确分配。 Console.WriteLine(Logic.doesImageExistLocally("imageurl"));

public class Test {

private string _LocalImage;

public string Image {get; set:}
public string LocalImage
{
get { return _LocalImage; }
set { _LocalImage = doesImageExistLocally(Image); }
}
}
编辑:
Test test = new Test();
test.Image = "URL";
doesImageExistLocally(Image); // output = Images/name-of-picture.jpg
Console.WriteLine(test.LocalImage); // output = null;
无效代码:
public static string doesImageExistLocally(string imageURL)
{
Uri uri = new Uri(imageURL);

string path = "Images/" + System.IO.Path.GetFileName(uri.LocalPath);
Console.WriteLine(path);
if (!File.Exists(path))
{
using (WebClient client = new WebClient())
{
client.DownloadFile(new Uri(imageURL), path);
}
}
return path;

}

最佳答案

在 Test 类中,永远不会设置 LocalImage 。使用此代码:

public class Test {

private string _LocalImage;
private string _Image;
public string Image
{
get
{
return _Image;
}
set
{
_Image = value;
_LocalImage = doesImageExistLocally(value);
}
}
public string LocalImage
{
get { return _LocalImage; }
}
}
我认为,如果您像这样修改代码,那将是正确的。
Test test = new Test();
test.Image = "URL";
test.LocalImage = "URL"; // output = Images/name-of-picture.jpg
Console.WriteLine(test.LocalImage); // output = null;

关于c# - 从类的 void 获取字符串值无法正确输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65853321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com