gpt4 book ai didi

C#,是否可以在不创建新对象变量的情况下重铸对象并访问方法和属性

转载 作者:行者123 更新时间:2023-11-30 20:04:58 24 4
gpt4 key购买 nike

C#,是否可以在不创建新对象变量的情况下重铸对象并访问方法和属性?

例如:

foreach (object o in collection)
{
if (o is MyType)
{
(MyType)o.MyProperty = x
}
}

目前,我必须将 o 重新转换为 MyType 的另一个变量 [例如:MyType m = (MyType)o ] 才能访问 MyType 的方法或属性。这看起来很浪费,所以我想知道我是否缺少一些允许我跳过新对象变量声明的机制。

最佳答案

您的代码不起作用,因为 . 的优先级高于强制转换。所以需要加上括号:

foreach (object o in collection) 
{
if (o is MyType)
{
((MyType)o).MyProperty = x;
}
}

关于C#,是否可以在不创建新对象变量的情况下重铸对象并访问方法和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12132005/

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