Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LISP开发人员如何解决AutoMapper在.NET中解决的问题?_C#_.net_Lisp_Automapper - Fatal编程技术网

C# LISP开发人员如何解决AutoMapper在.NET中解决的问题?

C# LISP开发人员如何解决AutoMapper在.NET中解决的问题?,c#,.net,lisp,automapper,C#,.net,Lisp,Automapper,即,将状态从一个对象转移到另一个对象,该对象共享第一个对象的部分(但不是全部)成员 我还没有将这个问题应用到任何实际问题中,但我想我问这个问题是为了了解LISP中的问题解决方法与C#等面向对象语言之间的区别。这很简单 您只需编写一个小函数,查看对象的类有哪些相同的插槽(借助元对象协议),并复制它们的值。最多10行正如对象是类的实例一样,类也是对象,是(元)类“类”的实例。您可以要求每个类提供其插槽定义的列表,并比较这两个列表以找出共性。 如果传输后不再需要原始对象,只需调用change clas

即,将状态从一个对象转移到另一个对象,该对象共享第一个对象的部分(但不是全部)成员

我还没有将这个问题应用到任何实际问题中,但我想我问这个问题是为了了解LISP中的问题解决方法与C#等面向对象语言之间的区别。

这很简单


您只需编写一个小函数,查看对象的类有哪些相同的插槽(借助元对象协议),并复制它们的值。最多10行

正如对象是类的实例一样,类也是对象,是(元)类“类”的实例。您可以要求每个类提供其插槽定义的列表,并比较这两个列表以找出共性。

如果传输后不再需要原始对象,只需调用
change class
即可就地更改其类。查看MOP,看起来需要的例程是COMPUTE-SLOTS,但我不确定如何使用它-我将其应用于一个DEFCLASS类,并在CLISP中对其进行实例化,结果出现了错误:-/不确定您是否仍在寻找答案,但以下是如何在CLISP中使用COMPUTE-SLOTS:但您可能希望改用CLASS-SLOTS。然后使用SLOT-DEFINITION-NAME获取插槽的名称。谢谢链接。非常全面。