创建接收参数的方法的最佳方法
本文关键字:方法 最佳 参数 创建 | 更新日期: 2023-09-27 18:15:47
我想知道哪种方式是创建接收低量parameters
(如1或2)的方法的最佳方法。
第一个:传递实体类对象作为参数。
MyClass entity = new MyClass();
BDClass bd = new BDClass();
entity.Name = "Alan";
bd.InsertName(entity);
public void InsertName(MyClass entity)
{
///A simple Insert/Select
}
第二点:即使在OO上编程,也要使用变量作为参数,而不是实体类。
BDClass bd = new BDClass();
string name = "Alan";
bd.InsertName(name);
public void InsertName(string name)
{
///A simple Insert/Select
}
我想知道哪一个是最好的考虑性能和良好的编程实践。还是取决于具体情况?我的意思是,我认为只有当类的数量很大,而变量的参数数量很少的时候,使用实体类作为参数比较好。
我知道这与代码本身无关,但我只是想学习哪一种是正确的编程方式
差异不大,正确的答案。因为你可以写成第二种形式,而且方法名是InsertName
,所以我更喜欢第二种形式。
为什么?首先,它只需要一个名称(字符串),否则只有一个参数是不够的。其次,您可以传递任何名称给它,无论它来自MyClass
或其他任何地方。
如果您确实需要传递具有给定类型的MyClass
对象,那么您需要的不仅仅是它的名称,您不能仅通过传递名称字符串来替换它。在这种情况下,MyClass
可能是BDClass
的依赖项。
这取决于你正在处理的情况。如果你打算添加实体类的整个对象,你的方法是在c#库项目中编写的,你想在其他项目中使用该方法,在那里你收集关于实体对象的全部信息,那么第一种方法方法适合你…但最终你要做什么完全取决于你自己。
看情况。
如果你的方法正在处理一个(数据/域)实体,它甚至不应该是一个类;而是一个接口——您将把它提供给方法,我的意思是IoC框架。
如果它需要经常传递给其他代码块,以另一个类的形式;那么,使用实体类可能会更容易,因为实体类将被映射到结果类型。
如果它是一个纯粹的函数,只是计算一些东西(它的算法不会改变,你不使用像策略模式这样的东西),那么你可以只使用命名参数。
这些不是所有可能的情况。这些都是(恕我直言)执行这项任务的好方法。
我总是从简单的命名参数开始!避免过早优化!等待代码中的模式出现。
都是正确的,当正确性在c#中定义为有效时
根据使用情况,可以选择一种模式或另一种模式。没有千篇一律的方法,您不会看到任何性能差异。
例如,如果您想验证类型为MyClass
的现有对象,那么您将期望验证整个项目。对于传入具有多个属性的对象,或者当所需参数的数量随着时间的推移而增加时,也是如此。