在组织代码时执行以下操作是否有任何问题 - 特别是异常?
public class QueryParameterException
{
public class BooleanArgumentException : ArgumentException
{
public BooleanArgumentException(string message)
: base(message)
{
}
}
public class DoubleArgumentException : ArgumentException
{
public DoubleArgumentException(string message)
: base(message)
{
}
}
public class IntArgumentException : ArgumentException
{
public IntArgumentException(string message)
: base(message)
{
}
}
}
并像这样引用它们:
throw new QueryParameterException.BooleanArgumentException($"invalid argument '{queryStringValue}' for boolean parameter '{key}' should be 'true' or 'false'");
原因不重复 - 继承无关。
答案 0 :(得分:1)
我看到两个问题。
首先,如果你在一个类中嵌套而不是使用命名空间,它似乎工作相同,除非你不能将外部类名移动到using
语句,如果你要多次引用它。您每次都必须使用完整的外部和内部类名。
第二是主观的。一些未来的开发人员可能会花费额外的30秒左右来试图找出正在发生的事情。他/她可能会看到
throw new QueryParameterException.BooleanArgumentException($"...");
并且觉得需要查看QueryParameterException
和BooleanArgumentException
的声明,即使它与他当前的任务无关。
当他到达那里时,他会确认这些只是嵌套类,而且没关系。没什么大不了的,回到当前的任务。但是他仍然会抓挠他的脑袋并想知道为什么这样做了。即使它有效,使用类作为命名空间也是不寻常的。一旦他意识到有人做了一些奇怪的事情,没有明显的理由他对代码的信心会稍微受到侵蚀(可能只有3%)而且他会花更多的时间来检查他可能不需要检查的事情。确定没有什么奇怪的事情发生。