我需要设计一个可以将对象作为参数的方法,如果没有,那么方法必须自己创建一个新对象.
这是一个很好的方法吗?
public void Method1(int companyId, int userId, int clientId)
{
Method1(null, companyId, userId, clientId);
}
public void Method1(SpecialObject o, int companyId)
{
if(o == null)
o = new SpecialObject(userId, clientId);
}
Run Code Online (Sandbox Code Playgroud)
扩展丹尼尔的答案,我经常使用这种模式:
public void Method1(int companyId, int userId, int clientId)
{
Method1(new SpecialObject(userId, clientId), companyId);
}
public void Method1(SpecialObject o, int companyId)
{
// if needed
if (o == null)
{
throw new ArgumentNullException("o")
}
...
}
Run Code Online (Sandbox Code Playgroud)