小编Xio*_*iol的帖子

在尾递归函数中使用管道时出现堆栈溢出异常

我有一个天真的游戏循环实现

let gameLoop gamestate =     
    let rec innerLoop prev gamestate =
        let now = getTicks()
        let delta = now - prev
        gamestate 
        |> readInput delta
        |> update delta
        |> render delta
        |> innerLoop delta             

    innerLoop 0L gamestate 
Run Code Online (Sandbox Code Playgroud)

此实现抛出stackoverflowexception.在我看来,这应该是尾递归.我可以像这样做一个工作

let gameLoop gamestate =     
    let rec innerLoop prev gamestate =
        let now = getTicks()
        let delta = now - prev
        let newState = gamestate 
            |> readInput delta
            |> update delta
            |> render delta

        innerLoop now newState

    innerLoop 0L gamestate  
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么第一个代码示例抛出stackoverflow异常.

f# tail-recursion

9
推荐指数
2
解决办法
190
查看次数

将 WPF Geometry 从资源添加到 GeometryGroup

所以我知道我可以做到这一点

<Path Grid.Column="0" Width="16" Height="16" Fill="{DynamicResource WindowForegroundBrush}" Stretch="Uniform">
    <Path.Data>
        <GeometryGroup >
            <Geometry>some geometry data1</Geometry>
            <Geometry>some geometry data2</Geometry>
            <Geometry>some geometry data3</Geometry>
        </GeometryGroup>
    </Path.Data>
</Path>
Run Code Online (Sandbox Code Playgroud)

但现在我想将几何数据 1、2 和 3 移动到资源字典中

---resource dictionary---

<Geometry x:Key="data1">some geometry data1</Geometry>
<Geometry x:Key="data2">some geometry data2</Geometry>
<Geometry x:Key="data2">some geometry data3</Geometry>

---resource dictionary end---

<Path Grid.Column="0" Width="16" Height="16" Fill="{DynamicResource WindowForegroundBrush}" Stretch="Uniform">
    <Path.Data>
        <GeometryGroup >

        </GeometryGroup>
    </Path.Data>
</Path>
Run Code Online (Sandbox Code Playgroud)

如何将我的资源中的几何图形添加到我的几何图形组?我可以做某种绑定或造型吗?

我更喜欢 xaml 唯一的解决方案,但欢迎所有解决方案。

希望这是有道理的。

c# wpf xaml

4
推荐指数
1
解决办法
1032
查看次数

标签 统计

c# ×1

f# ×1

tail-recursion ×1

wpf ×1

xaml ×1