草庐IT

c# - 在 WPF M-V-VM 中撤消,它如何适应?

在我以前的项目中,我已经用c++实现了撤销系统,我知道它是如何工作的。我也知道命令模式。我将实现一个C#/WPF桌面应用程序,并希望我的设计基于M-V-VM模式。应用程序将:是一个相对较小的项目(1名开发人员预计工作2-3周)拥有一个具有持久性的简单数据模型(linqtoXML)支持撤销/重做我想知道是否有人在遵循M-V-VM模式时有过实现撤消系统的经验。它如何适合它?它如何从INotifyPropertyChanged和INotifyCollectionChanged通知中获益,以便在实现模型(业务对象)时需要最少的工作。我认为撤消系统会以某种方式集成到ViewModel层中,因为它

c# - Array.Copy 在 C# 中是如何实现的?

我尝试使用ILSpy在C#中查看Array.Copy的实现,但它没有向我展示实现本身。我写了一个简单的基准测试,Array.Copy与一个简单的for循环来复制数据。Array.Copy更快。如何更快地实现?谢谢,谢伊 最佳答案 反汇编Array类将使您得到这个声明:[MethodImpl(MethodImplOptions.InternalCall),SecurityCritical,ReliabilityContract(Consistency.MayCorruptInstance,Cer.MayFail)]internalst

c# - 关闭 VM 会将所有 VM 状态返回为未知

当使用以下方法关闭和查询角色实例时。当我关闭VM时,所有其他角色实例都返回,状态为就绪状态未知。大约几分钟后,我可以再次查询并获得实际状态。如何使用Azure管理API实时获取实际状态。或者这是虚拟机配置方式的问题?它们配置了相同的存储位置和相同的虚拟网络显示的代码基于VisualStudio2015中部署和管理虚拟机的模板。关闭虚拟机的调用:varshutdownParams=newVirtualMachineShutdownParameters();if(deallocate)//deallocateistrueinthisinstanceshutdownParams.PostSh

c# - 为什么在 C# 中没有 Directory.Copy

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我正在用C#编写一个包含大量IO操作的程序。其中一些操作是复制目录。当我发现在C#中没有类似Directory.copy(SourceDir,DestinationDir)的东西时,我真的很震惊。我用谷歌搜索了一下,在msdn上他们提供了一个代码示例来复制目录。(http://msdn.microsoft.com/en-us/library/bb76291

C# 列出 : How to copy elements from one list to another, 但仅列出某些属性

所以我有一个具有许多属性的对象列表。这些属性包括name和id。我们称这个对象为ExtendedObject。我还声明了一个新的不同对象列表,这些对象仅name和id属性。我们称此对象为BasicObject。我想做的是将ExtendedObject对象列表转换或复制(因为缺少更好的词)到BasicObject对象列表。我知道C#列表有很多有用的有趣方法,所以我想知道是否有一种简单的方法可以表达以下效果:basicObjectList=extendedObjectList.SomeListMethod(someconditionhere);但我意识到它可能最终看起来不像那样。我还意识到

c# - File.Copy() 到具有网络凭据的文件服务器

这个问题在这里已经有了答案:Howtoprovideusernameandpasswordwhenconnectingtoanetworkshare(12个答案)关闭7年前。我正在编写控制台应用程序,它将文件从我的本地磁盘复制到文件服务器。此文件夹受用户名和密码保护。File.Copy()方法不起作用。它给出了权限错误。Ihavelookedtothiscode我试过了,还是不行。首先它是用VB编写的,但我已将代码更改为C#,但存在一些错误。我不知道这个错误是什么意思。也许你可以建议我用其他方式将文件复制到protected文件服务器使用简单的File.Copy(blabla)它给我“

c# - .NET CLR VM 中的逃逸分析

CLR编译器/JIT是否执行任何逃逸分析?例如,在Java中,一个循环变量一个在循环中分配但没有逃脱循环的对象似乎分配在堆栈上而不是堆上(参见EscapeanalysisinJava)。为了澄清,在下面的示例中,编译器是否会优化foo的堆分配,因为它永远不会逃脱循环。classFoo{intnumber;Foo(intnumber){this.number=number;}publicoverridestringToString(){returnnumber.ToString();}}for(inti=0;i 最佳答案 如果您指的是

c# - 为什么 ICommand 比调用 VM 的代码更好?

我有一个同事问我为什么他必须使用ICommand模式。他想添加一个按钮,然后在后面的代码中为它创建一个事件。然后从事件中他想调用ViewModel上的方法。我给了他一个明显的答案:这增加了View和ViewModel之间的耦合。但他认为View和ViewModel已经耦合。(我们在View后面的代码中将View的DataContext设置为ViewModel:DataContext=newMyViewModel();是的,我告诉他他的方式增加了“更多的耦合”,但即使对我来说听起来也有点蹩脚。所以,我知道ICommand是最干净的方式,我就是这样做的。但是除了不使用现有的耦合器之外,IC

c# - 为什么 C# 不支持 Copy Constructor 的概念?

我在一次采访中被问到这个问题,但我无法确切地找出为什么没有这个概念。请告诉我。 最佳答案 它没有内置到语言中,因为没有合理的默认实现。复制构造函数sufferfrommanyofthesameambiguitiesascloning.例如,要进行浅拷贝还是深拷贝取决于您的具体情况。假设您有一个带有Customer属性的Order类。它的复制构造函数应该创建一个新客户还是指向原始实例?可能是原始实例-但是Order.Payment呢?更糟糕的是,即使您确实想要执行深拷贝,您甚至可能无法创建所有从属对象,因为它们的构造函数(或类似的工厂

c# - 如何知道 File.Copy 成功了?

静态方法File.Copy(String,String)不返回值。我如何以编程方式知道该函数是否成功?如果没有抛出异常,File.Copy会顺利进行。但是我问的是如何把“无异常(exception)”作为条件。像这样:if(noexceptionhappened){//mycodegoeshere}编辑:我已经使用如下简单的计数器解决了这个问题:inti=0;try{File.Copy();}catch(e1){i++;}catch(e2){i++;}if(i==0){//mycodegoeshere}感谢所有贡献者。我将仔细阅读您的答案以选择最佳答案。 最