2015-01-21 6 views
-2

В частности, я имею в виду этот фрагмент кода, я пытаюсь понять, что он делает с точки зрения объекта класса.Что такое эквивалент Java-класса в C#?

В коде ниже, что означает класс? Это то же самое, что и «Тип» в C#?

Также, что делает метод isSuperTypeOf() в терминах типа класса? Способ, которым они написали метод, который я не знаю, действительно, какое свойство type есть.

Источник кода в этом документе Dynamic Object Model

class PropertyType { 

protected String name; 

protected Class type; 

protected boolean isMandatory; 

... 

public String getName() { 

return name; 

} 

public boolean isSupertypeOf(Class type) { 

return type.isAssignableFrom(type); 

} 

public boolean isValidValue(Object value) { 

// check value, possibly delegate to a strategy 

} 

... 

} 
+4

Вы ищете документацию. – SLaks

+0

в C# объявление переменной типа, переданное в метод isSupertypeOf, «спрячет» объявленное поле типа в классе. –

ответ

4

какой Class средний? Это то же самое, что и Type в C#?

Да, System.Type of .NET является близким эквивалентом Java java.lang.Class.

Также, что делает метод isSuperTypeOf() в терминах Class type?

isSuperTypeOf метод обеспечивает обертку для метода isAssignableFrom. Его эквивалент в C#, неудивительно, IsAssignableFrom метод System.Type.

Возможно, самая большая разница между Class Явой и Type из .NET является то, что Class является родового от типа, который он представляет, в то время как Type не является универсальным класс. Причина этого различия связана с различием в том, как реализованы дженерики Java и .NET: реализация Java основана на стирании типа, поэтому наличие общего типа Class обеспечивает определенные преимущества, которые не нужны в схеме реализации .NET.

1

Да ближайшая аналогия в C# является тип. В том смысле, что он представляет метаданные о типе объекта. Однако существует много различий между механизмами отражения Java и C#.

Смежные вопросы