Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Java的c等价物是什么;s getClass()、isAssignableFrom()等。?_C#_Java_Class - Fatal编程技术网

C# Java的c等价物是什么;s getClass()、isAssignableFrom()等。?

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发出有关泛型的警告。最好有更好的解决方

我正在从Java翻译到C#,代码类似于:

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
}