Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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# - Fatal编程技术网

C# 将对象或值传递给函数

C# 将对象或值传递给函数,c#,C#,由于原始问题被视为无法回答,因此对该问题进行了编辑,以询问具体示例 如果应用程序需要显示有关各种对象(包括类似对象和继承对象)的信息,那么最好将基类对象传递给显示函数,并允许它查询对象以确定要显示的数据;或者只需按值传入每个字段。通过值传递的优点是不需要直接依赖于它们所表示的对象,因此可以将显示(UI)与业务规则对象隔离开来。通常,您应该传递方法执行其工作所需的最小信息量。例如,如果某个方法根据某人的出生日期计算其年龄,则不需要传入整个person对象,只需要此人的出生日期和当前日期 通过遵循上

由于原始问题被视为无法回答,因此对该问题进行了编辑,以询问具体示例


如果应用程序需要显示有关各种对象(包括类似对象和继承对象)的信息,那么最好将基类对象传递给显示函数,并允许它查询对象以确定要显示的数据;或者只需按值传入每个字段。通过值传递的优点是不需要直接依赖于它们所表示的对象,因此可以将显示(UI)与业务规则对象隔离开来。

通常,您应该传递方法执行其工作所需的最小信息量。例如,如果某个方法根据某人的出生日期计算其年龄,则不需要传入整个person对象,只需要此人的出生日期和当前日期

通过遵循上述方法,您可以保留您的方法,这使它们更易于维护


在您的例子中,您必须平衡是否需要在这些方法中访问基类的许多字段,或者是否只需要访问一些字段。如果有很多字段,那么只传递整个对象可能更有意义。这是一种良好耦合之间的平衡(参见本答案的第一部分),但同时避免向方法传递大量参数。

“这取决于”并且不是语言不可知的:一般函数很好,但不一定覆盖其他契约。这不是建设性的(意思是不可回答)。这就像“什么更好?汽车还是卡车?”——正确的答案取决于你是否需要舒适地运送人或捆干草。“什么更好?一只狗还是一只猫?”这取决于你是想摆脱老鼠,还是想养一只宠物来打猎和看守你的房子。投票结束。对不起。:)感谢您的反馈,我已经改变了问题,以反映一个具体的例子,我在过去的斗争。希望有帮助。