Release 模式下 shape 的真实类型

Roy Li - MSFT 31,886 信誉分 Microsoft 供应商
2024-02-29T08:24:32.29+00:00

我有如下的代码:

<Canvas Name="c">
<Rectangle/>
<Rectangle/>
<Image/>
</Canvas>

现在,当我使用如下代码在debug 模式和release 模式遍历XAML时,会得到不一样的结果

string s = "";
foreach (object o in c.Children)            
{          
      s += o.GetType().Name;
}

  Debug模式下,我能拿到正确的类名称。但是在release 模式下,Rectangle 对象返回的类名称却是 shape。

我希望两种模式下,能拿到一样的返回值。我该如何实现这个目标?

此问题由True Shape object Type in release mode总结而来  

通用 Windows 平台 (UWP)
通用 Windows 平台 (UWP)
一个 Microsoft 平台,用于生成和发布适用于 Windows 桌面设备的应用。
17 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Junjie Zhu - MSFT 15,056 信誉分 Microsoft 供应商
    2024-02-29T08:51:38.46+00:00

    你好,

    直接对特定控件进行特殊处理,似乎可以作为一种解决方法,你可以试试这个。

    string s = "";
    foreach (object o in c.Children)
    {
        if (o.GetType() == typeof(Rectangle))
        {
            s += "Rectangle";
        }
        else
        {
            s += o.GetType().Name;
        }
    
    }
    

    谢谢。


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想收到该主题的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助