C# Java的c等价物是什么;s getClass()、isAssignableFrom()等。?
我正在从Java翻译到C#,代码类似于:C# Java的c等价物是什么;s getClass()、isAssignableFrom()等。?,c#,java,class,C#,Java,Class,我正在从Java翻译到C#,代码类似于: Class refClass=refChildNode.getClass(); 类testClass=testChildNode.getClass(); 如果(!refClass.equals(testClass)){ //做点什么 } 在其他地方使用Class.isAssignableFrom(Class c)。。。以及类似的方法 在不可能的情况下,是否有一个类比较、属性和代码的直接等价表 (该只是为了阻止IDE发出有关泛型的警告。最好有更好的解决方
Class refClass=refChildNode.getClass();
类testClass=testChildNode.getClass();
如果(!refClass.equals(testClass)){
//做点什么
}
在其他地方使用Class.isAssignableFrom(Class c)
。。。以及类似的方法
在不可能的情况下,是否有一个类比较、属性和代码的直接等价表
(该
只是为了阻止IDE发出有关泛型的警告。最好有更好的解决方案)
看看System.Type类。它有。看看反射()
例如,您的代码是:
Type refClass = refChildNode.GetType();
Type testClass = testChildNode.GetType();
if (refClass != testClass)
{
....
}
首先,要获取类(或在.NET speak中,键入),可以使用以下方法:
Type t = refChildNode.GetType();
现在您有了类型,可以检查相等或继承。以下是一些示例代码:
public class A {}
public class B : A {}
public static void Main()
{
Console.WriteLine(typeof(A) == typeof(B)); // false
Console.WriteLine(typeof(A).IsAssignableFrom(typeof(B))); // true
Console.WriteLine(typeof(B).IsSubclassOf(typeof(A))); // true
}
这使用了System.Reflection功能。可用方法的完整列表为。您可能需要提及类型。IsAssignableFrom方法:
类
=>类型
。camelCase=>PascalCase;)哈哈,对不起,德米克,我没意识到这听起来有多么傲慢!
public class A {}
public class B : A {}
public static void Main()
{
Console.WriteLine(typeof(A) == typeof(B)); // false
Console.WriteLine(typeof(A).IsAssignableFrom(typeof(B))); // true
Console.WriteLine(typeof(B).IsSubclassOf(typeof(A))); // true
}