C# 修改作为方法参数传递的集合(数组等)是否正常(ok)?

C# 修改作为方法参数传递的集合(数组等)是否正常(ok)?,c#,.net,parameters,parameter-passing,C#,.net,Parameters,Parameter Passing,正常吗,遵循标准指南。。。(你知道了)要有一个像下面这样的方法: public void Method(IList<int> test) { test.Add(1); } 公共无效法(ILST测试) { 测试。添加(1); } 不知何故,我期望从方法签名中获得一些信息,即参数将被修改(如ref或out),或者类似于返回与返回值相同的列表的约定,例如: public IList<int> Method(IList<int> test) { t

正常吗,遵循标准指南。。。(你知道了)要有一个像下面这样的方法:

public void Method(IList<int> test)
{
    test.Add(1);
}
公共无效法(ILST测试)
{
测试。添加(1);
}
不知何故,我期望从方法签名中获得一些信息,即参数将被修改(如ref或out),或者类似于返回与返回值相同的列表的约定,例如:

public IList<int> Method(IList<int> test)
{
    test.Add(1);
    return test;
}
公共IList方法(IList测试)
{
测试。添加(1);
回归试验;
}
你觉得怎么样? 提前感谢。

公共IList方法(IList测试)
public IList<int> Method(IList<int> test)
{
    test.Add(1);
    return test;
}
{ 测试。添加(1); 回归试验; }
类型
IList
实际上已经说明您需要
IList
方法(例如
Add
),这些方法在
IEnumerable
中不存在

当然,您需要记录该方法的实际功能,为该方法提供一个有用的名称,如果其他开发人员可以公开该方法,还需要提供XML文档。

public-IList-method(IList-test)
{
测试。添加(1);
回归试验;
}
类型
IList
实际上已经说明您需要
IList
方法(例如
Add
),这些方法在
IEnumerable
中不存在

当然,您需要记录该方法的实际功能,为该方法提供一个有用的名称,如果其他开发人员可以公开该方法,还需要提供XML文档。

public-IList-method(IList-test)
{
测试。添加(1);
回归试验;
}
类型
IList
实际上已经说明您需要
IList
方法(例如
Add
),这些方法在
IEnumerable
中不存在

当然,您需要记录该方法的实际功能,为该方法提供一个有用的名称,如果其他开发人员可以公开该方法,还需要提供XML文档。

public-IList-method(IList-test)
{
测试。添加(1);
回归试验;
}
类型
IList
实际上已经说明您需要
IList
方法(例如
Add
),这些方法在
IEnumerable
中不存在


当然,您需要记录该方法的实际功能,为该方法提供一个有用的名称,如果其他开发人员可以公开该方法,还需要提供XML文档。

是的,如果开发人员对该方法有很好的文档注释,或者流程通过一个很好的描述性方法名称了解它。不允许使用名称
方法(列表)

public void FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
}
public void findmoreid(IList id)
{
...
添加(…);
...
}
现在这是可行的,因为它有点道理,集合将被修改看签名。您所做的而不是想要做的是设置如下内容:

public IList<int> FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
     return ids;
}
公共IList FindMoreID(IList ID)
{
...
添加(…);
...
返回ID;
}
开发人员会认为他们传递的原始集合不会被修改


如果您不打算修改集合,当然还有其他解决方案可供使用。您可以使用
IEnumerable
或数组来代替。

是的,如果开发人员知道它有很好的文档注释,或者流程通过一个很好的描述性方法名称让它知道。不允许使用名称
方法(列表)

public void FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
}
public void findmoreid(IList id)
{
...
添加(…);
...
}
现在这是可行的,因为它有点道理,集合将被修改看签名。您所做的而不是想要做的是设置如下内容:

public IList<int> FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
     return ids;
}
公共IList FindMoreID(IList ID)
{
...
添加(…);
...
返回ID;
}
开发人员会认为他们传递的原始集合不会被修改


如果您不打算修改集合,当然还有其他解决方案可供使用。您可以使用
IEnumerable
或数组来代替。

是的,如果开发人员知道它有很好的文档注释,或者流程通过一个很好的描述性方法名称让它知道。不允许使用名称
方法(列表)

public void FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
}
public void findmoreid(IList id)
{
...
添加(…);
...
}
现在这是可行的,因为它有点道理,集合将被修改看签名。您所做的而不是想要做的是设置如下内容:

public IList<int> FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
     return ids;
}
公共IList FindMoreID(IList ID)
{
...
添加(…);
...
返回ID;
}
开发人员会认为他们传递的原始集合不会被修改


如果您不打算修改集合,当然还有其他解决方案可供使用。您可以使用
IEnumerable
或数组来代替。

是的,如果开发人员知道它有很好的文档注释,或者流程通过一个很好的描述性方法名称让它知道。不允许使用名称
方法(列表)

public void FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
}
public void findmoreid(IList id)
{
...
添加(…);
...
}
现在这是可行的,因为它有点道理,集合将被修改看签名。您所做的而不是想要做的是设置如下内容:

public IList<int> FindMoreIds(IList<int> ids)
{
     ...
     ids.Add(...);
     ...
     return ids;
}
公共IList FindMoreID(IList ID)
{
...
添加(…);
...
返回ID;
}
开发人员会认为他们传递的原始集合不会被修改


如果您不打算修改集合,当然还有其他解决方案可供使用。您可以使用
IEnumerable
或数组来代替。

我个人尝试避免使用此类方法,并尝试使用一种更“功能性”的样式,其中该方法接受一些输入并返回输出。当然,有时在方法中实际更改列表是最有意义的,但是我试图非常明确地使用方法名称

另一方面,你的第二个