C#中的Elm体系结构(MVU)和深度复制

C#中的Elm体系结构(MVU)和深度复制,c#,model-view-update,maui,C#,Model View Update,Maui,我正在研究使用C#在Xamarin应用程序中实现MVU模式的可能性。这似乎主要取决于提供给视图的模型的不变性和Update函数,该函数将在需要更改模型时不断生成新模型 如果模型可能包含引用类型,在C#中是否可以在不实现某种深度复制的情况下正确实现这一点 我知道像Fabulous这样的框架可以在F#中实现这一点,但我只是想了解,C#缺乏对不变性的支持是否意味着,如果不实现某种深度复制操作,就不可能实现纯形式的MVU?微软似乎会在其即将发布的版本中回答这个问题框架很快: readonly State

我正在研究使用C#在Xamarin应用程序中实现MVU模式的可能性。这似乎主要取决于提供给视图的模型的不变性和
Update
函数,该函数将在需要更改模型时不断生成新模型

如果模型可能包含引用类型,在C#中是否可以在不实现某种深度复制的情况下正确实现这一点


我知道像Fabulous这样的框架可以在F#中实现这一点,但我只是想了解,C#缺乏对不变性的支持是否意味着,如果不实现某种深度复制操作,就不可能实现纯形式的MVU?

微软似乎会在其即将发布的版本中回答这个问题框架很快:

readonly State<int> count = 0;

[Body]
View body() => new StackLayout
{
    new Label("Welcome to .NET MAUI!"),
    new Button(
        () => $"You clicked {count} times.",
        () => count.Value ++)
    )
};
只读状态计数=0;
[正文]
视图主体()=>新的堆栈布局
{
新标签(“欢迎来到.NET毛伊岛!”),
新按钮(
()=>$“您单击了{count}次。”,
()=>count.Value++)
)
};
更多信息:


    • 微软似乎很快就会用其即将推出的框架来回答这个问题:

      readonly State<int> count = 0;
      
      [Body]
      View body() => new StackLayout
      {
          new Label("Welcome to .NET MAUI!"),
          new Button(
              () => $"You clicked {count} times.",
              () => count.Value ++)
          )
      };
      
      只读状态计数=0;
      [正文]
      视图主体()=>新的堆栈布局
      {
      新标签(“欢迎来到.NET毛伊岛!”),
      新按钮(
      ()=>$“您单击了{count}次。”,
      ()=>count.Value++)
      )
      };
      
      更多信息:

        • 很可能就是您正在寻找的库。它也将是毛伊岛支持MVU模式的基础,而“七”指的是。

          可能是你要找的图书馆。它也将是毛伊岛支持的MVU模式的基础,而“七”指的是“< /P>”。