2009-10-13 9 views
8

私はJavaからC#2に変換し、のようなコード持っています:JavaのgetClass()、isAssignableFrom()などのC#に相当するものは何ですか?

Class<?> refClass = refChildNode.getClass(); 
Class<?> testClass = testChildNode.getClass(); 
if (!refClass.equals(testClass)) { 
.... 
} 

や他の場所でClass.isAssignableFrom(Class c)を使用して...と同様の方法

は、クラスcomparsionとプロパティとコードの直接同等のテーブルがあります - これは不可能なところ?

<?>は、ジェネリック医薬品についてのIDEからの警告を停止するだけです。より良いソリューションをいただければ幸いです)

+8

'Class' =>' Type'。 camelCase => PascalCase;) –

答えて

12
Type refClass = refChildNode.GetType(); 
Type testClass = testChildNode.GetType(); 
if (!refClass.Equals(testClass)) 
{ 
    .... 
} 

はSystem.Typeをクラスの表情を持っています。それはmethods you needを持っています。

+6

あなたはType.IsAssignableFromメソッドについて言及したいと思うかもしれません:http://msdn.microsoft.com/en-us/library/system.type.isassignablefrom.aspx – Simon

+0

@シモンこのメモをありがとう。私は本当にそれを言及する必要があります。 –

3

、クラスを取得する(または.NET話すには、タイプ)は、次の方法で使用することができます。

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機能を使用しています。利用可能な方法の全リストはhereです。

+1

+1を.NETに少し紹介します。 – DerMike

+0

笑、申し訳ありませんDerMike私はこれを撫でることがどのように聞こえたか分からなかった! – Dunc

関連する問題