简短版:代码中的注释是否正确?我认为它们是不正确的,应该颠倒过来。
public Type GetTestClass(Object left, Object right)
{
if (left == null || right == null) return null;
Type leftClass = left.GetType();
Type rightClass = right.GetType();
Type testClass;
if (leftClass.IsInstanceOfType(right))
{
testClass = leftClass;
if (!rightClass.IsInstanceOfType(left))
{
// rightClass is a subclass of leftClass
testClass = rightClass;
}
}
else if (rightClass.IsInstanceOfType(left))
{
testClass = rightClass;
if (!leftClass.IsInstanceOfType(right))
{
// leftClass is a subclass of rightClass
testClass = leftClass;
}
}
else
{
// The two classes are not related.
testClass = null;
}
return testClass;
}
我在我正在处理的代码库中遇到了这段代码,我认为注释不正确。我相信评论//rightClass is a subclass of leftClass
和//leftClass is a subclass of rightClass
不正确。例如,如果leftClass
是类型Object
并且rightClass
是类型MyClass
(从 Object 继承),那么这就是我认为代码的工作方式......
Object
MyClass
是 FALSE的一个实例MyClass
Object
是 TRUE的一个实例testClass
被设定为MyClass
- NOT(是 FALSE
Object
的一个实例MyClass
)是 TRUE testClass
被设定为Object
testClass
返回 which ==Object
我相信这是正确的功能......最终代码试图返回两个类的超级类(你也可以说是公共基类),或者如果它们不相关,则返回 null。使用上面的示例(步骤 1-5)实际上是否正确地说 leftClass 是 rightClass 的 SUPER 类...或者反过来说 rightClass 是 leftClass 的 SUBCLASS?