Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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#对象动态覆盖函数?_C#_Object - Fatal编程技术网

如何使C#对象动态覆盖函数?

如何使C#对象动态覆盖函数?,c#,object,C#,Object,我正在使用XML反序列化从XML文件启动时初始化许多对象。在对象的类中,我有一个计算函数。每个对象都有不同的计算方式,并且每个对象都必须是唯一的。将其与每个对象的数据关联的最佳方式是什么?我应该使用继承并重写计算函数吗 编辑:所以来自XML的基类是: 公共阶级问题 { 公共字符串问题名称{get;set;} 公共条件[]公共条件; } 公共阶级状况 { 公共字符串条件名称{get;set;} 公共列表属性名称; 公共列表属性值; } } 我的应用程序代码有一系列问题,这些问题是从XML文件反序

我正在使用XML反序列化从XML文件启动时初始化许多对象。在对象的类中,我有一个计算函数。每个对象都有不同的计算方式,并且每个对象都必须是唯一的。将其与每个对象的数据关联的最佳方式是什么?我应该使用继承并重写计算函数吗

编辑:所以来自XML的基类是:


公共阶级问题
{
公共字符串问题名称{get;set;}
公共条件[]公共条件;
}
公共阶级状况
{
公共字符串条件名称{get;set;}
公共列表
属性名称; 公共列表
属性值; } }

我的应用程序代码有一系列问题,这些问题是从XML文件反序列化的。我想在Condition类中添加一个计算方法,该方法将根据从文件加载到该类中的属性名称/值返回结果。一些属性是字符串比较,而另一些属性将解析为双精度以执行计算


我曾考虑使用继承自Condition类的计算方法创建新类,但我需要一种方法将适当的对象与XML文件中的内容联系起来。

也许将计算函数作为委托并将正确的计算函数传递给每个对象会更容易。然后,对象的实际计算函数将为计算函数使用传递的方法

正是针对这种情况

策略模式(也称为策略模式)是一种软件设计模式,允许在运行时选择算法的行为


请提供您的xml文件示例以及您正在创建的对象类型。你说每个对象都有一个diff计算函数是什么意思?你真的需要发布一些代码来解决这个问题。