C# 创建接收参数的方法的最佳方法

C# 创建接收参数的方法的最佳方法,c#,asp.net,C#,Asp.net,我想知道哪种方法是创建方法的最佳方法,该方法可以接收少量参数,比如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上编程,也

我想知道哪种方法是创建方法的最佳方法,该方法可以接收少量
参数
,比如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
}
考虑到性能和编程的良好实践,我想知道哪一个是最好的。还是视情况而定?我的意思是,我想只有当实体类是大量的类,并且变量的参数数量较少时,才最好使用实体类作为参数

MyClass entity = new MyClass();
BDClass bd = new BDClass();
entity.Name = "Alan";
bd.InsertName(entity);

public void InsertName(MyClass entity)
{
     ///A simple Insert/Select
}

我知道这与代码本身无关,但我只想知道哪种编程方法是正确的,这取决于您所处理的情况。如果您将要添加实体类的整个对象,并且您的方法是在某个c#Library项目中编写的,并且您希望在其他项目中使用该方法,在这些项目中,您收集有关实体对象的全部信息比第一种方法更适合您。。。但最终,你想做什么完全取决于你自己。

这取决于你所处理的情况。如果您将要添加实体类的整个对象,并且您的方法是在某个c#Library项目中编写的,并且您希望在其他项目中使用该方法,在这些项目中,您收集有关实体对象的全部信息比第一种方法更适合您。。。但最终,你想做什么完全取决于你自己。

当正确性在C#中被定义为有效时,两者都是正确的

根据使用情况,可以选择一种图案或另一种图案。没有千篇一律的方法,您不会看到任何性能差异


例如,如果要验证类型为
MyClass
的现有对象,则需要一个完整的项。这同样适用于传递具有大量属性的对象,或者当所需的参数数量将随时间增加时

当正确性在C#中定义为有效时,两者都是正确的

根据使用情况,可以选择一种图案或另一种图案。没有千篇一律的方法,您不会看到任何性能差异

例如,如果要验证类型为
MyClass
的现有对象,则需要一个完整的项。这同样适用于传递具有大量属性的对象,或者当所需的参数数量将随时间增加时

视情况而定

如果您的方法正在处理(数据/域)实体,则is甚至不应该是类;而是一个接口——你将把它提供给我的IoC框架方法

如果需要以另一个类的形式频繁地将其传递给其他代码块;然后,也许使用实体类更容易,它将映射到结果类型

这是一个纯粹的函数,它只是计算一些东西(它的算法不会改变,你也不会使用策略模式),然后你可以使用命名的参数

这些并非都是可能的情况。这些都是完成这项任务的好方法

我总是从简单的命名参数开始!避免过早优化!等待代码中的模式出现

视情况而定

如果您的方法正在处理(数据/域)实体,则is甚至不应该是类;而是一个接口——你将把它提供给我的IoC框架方法

如果需要以另一个类的形式频繁地将其传递给其他代码块;然后,也许使用实体类更容易,它将映射到结果类型

这是一个纯粹的函数,它只是计算一些东西(它的算法不会改变,你也不会使用策略模式),然后你可以使用命名的参数

这些并非都是可能的情况。这些都是完成这项任务的好方法


我总是从简单的命名参数开始!避免过早优化!等待代码中的模式出现

没有大的区别,答案是正确的。因为您可以用第二种形式编写它,并且方法名是
InsertName
,所以我更喜欢第二种形式

为什么??首先,它只需要一个名称(字符串),否则仅一个参数是不够的。其次,您可以将任何名称传递给它,无论它来自
MyClass
或其他任何地方


如果您确实需要传递具有给定类型的
MyClass
对象,那么您需要的肯定不仅仅是其中的名称,而不能仅传递名称字符串。在这种情况下,
MyClass
可能是
BDClass

的一个依赖项,没有大的区别,答案是正确的。因为您可以用第二种形式编写它,并且方法名是
InsertName
,所以我更喜欢第二种形式

为什么??首先,它只需要一个名称(字符串),否则仅一个参数是不够的。其次,您可以将任何名称传递给它,无论它来自
MyClass
或其他任何地方


如果您确实需要传递具有给定类型的
MyClass
对象,那么您需要的肯定不仅仅是其中的名称,而不能仅传递名称字符串。在这种情况下,
MyClass
可能是
BDClass

InsertName(MyClass实体)
的依赖项,听起来有点混乱。如果插入名称,为什么需要传递整个实体?我认为这里真正的问题是
InsertName
做什么?这总是主观的,取决于个人偏好。对于单个参数(
string name
)来说,
string name
似乎更“明显”—但随着参数数量的增加,对象方法变得诱人。。。但线路到底在哪里?谁是c