gpt4 book ai didi

c# - (cast)variable 和 ((cast)variable) 有什么区别

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:58 29 4
gpt4 key购买 nike

我有以下代码:

T imageCollectionItem;

// This checks if image actually exists, if it doesn't it gets the next best one... Thumbnail wil always exist so it will always find one
imageCollectionItem = (this.ResizedImageCollection
.Where(x => ((IBaseImage)x).Image.ImageSizeType.Key != ImageSizeType.Original)
.OrderByDescending(x => ((IBaseImage)x).Image.ImageSizeType.Key == imageSizeTypeKey)
.ThenBy(x => ((IBaseImage)x).Image.ImageSizeType.Order)
.FirstOrDefault());

if( imageCollectionItem != null )
{
return ((IBaseImage)imageCollectionItem).Image; // Compiles fine
return (IBaseImage)imageCollectionItem.Image; // Fails
}

(cast)variable((cast)variable) 有什么区别?

考虑一个编译,一个不编译?

最佳答案

if( imageCollectionItem != null )
{
return ((IBaseImage)imageCollectionItem).Image; // Compiles fine
return (IBaseImage)imageCollectionItem.Image; // Fails
}

第一行运行是因为 .Image 是在已转换为正确接口(interface)的对象上运行的。

在第二行中,直到 调用 .Image 属性后才进行强制转换——我假设这会导致“找不到成员”错误或类似错误.

关于c# - (cast)variable 和 ((cast)variable) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29627754/

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