【发布时间】:2025-12-25 23:15:11
【问题描述】:
所以我有一个类型为SvgElement 的对象,它包含一个值SvgPath(继承SvgElement)。这是代码。
SvgElement createdElement;
//other operations. createdElement now has other data of SvgPath
if (createdElement.GetType() == typeof(SvgPath) & createdElement.ElementName == "path" && storedValue != "")
createdElement.PathData = SvgPathBuilder.Parse(storedValue);
return createdElement
(注意:这是统一完成的,必须考虑 .net 2.0,因为 Unity 会冒犯 System.Linq)
现在SvgPathBuilder.Parse 接受string 并将SvgPathSegmentList 类型的对象返回到PathData。 PathData 通常是SvgPath 中的一个变量,但我修改了SvgElement 以暂时取该值,这样我就知道我正在测试的其他东西是否可以工作。
现在我已经为您提供了背景信息..我如何(通用代码-Type T 的东西)编写它以便SvgPathBuilder.Parse 将存储在 SvgPath.PathData 而不是继承的基础 SvgElement 的 PathData 中?
(不确定标题是否适合问题,请告知)
【问题讨论】:
-
选角怎么样:
(createdElement as SvgPath).PathData = SvgPathBuilder.Parse(storedValue); -
有效。你应该得到一块饼干。
-
您在谈论泛型,并解决了简单的强制转换,但还是进行了 Null 引用检查,这在这种情况下是最可能的问题。如果没有分配有效的内存/初始化,那么就会出现Null引用异常
-
@MrinalKamboj 我不确定一个简单的泛型方法是否可以在类内部发挥作用。此外,storedvalue 已初始化,因此即使应该去那里的值没有,它也会返回一个空的 SvgPathSegmentList。
-
好的,将其发布为答案 :)