C# 在属性的setter方法中,value属性是否可能是不同的数据类型
我希望在setter中执行此代码,但是VisualStudio说“值”必须是相同的数据类型。有没有办法做到这一点C# 在属性的setter方法中,value属性是否可能是不同的数据类型,c#,C#,我希望在setter中执行此代码,但是VisualStudio说“值”必须是相同的数据类型。有没有办法做到这一点 public Image projectImage { set { var byteArray = new WebClient().DownloadData(value); this.projectImage.Source = ImageSource.FromStream(() => new MemoryStream(byteAr
public Image projectImage {
set
{
var byteArray = new WebClient().DownloadData(value);
this.projectImage.Source = ImageSource.FromStream(() => new MemoryStream(byteArray));
}
}
从文件中可以看出,签名为:
下载数据(字符串)
从指定的URI下载作为字节数组的资源
下载数据(Uri)
从指定的URI下载作为字节数组的资源
您为它提供了一种类型的映像,因此编译器自然会拒绝
您需要做的是在setter外部下载图像,然后为其分配图像(如果您想使用该值)
如果您想在这里这样做,则不能将字符串传递给setter
您可以做的是使用如下函数:
public bool SetImageFromUrl(string url) {
var byteArray = new WebClient().DownloadData(url);
this.projectImage.Source = ImageSource.FromStream(() => new MemoryStream(byteArray));
}
public Image projectImage {get; set; }
我尝试了这一点,但在这一行“this.projectmage.Source=ImageSource.FromStream(()=>newmemoryStream(byteArray));上出现System.NullReferenceException异常