Если в вашем find
отсутствует опция cmin
, вы можете touch
файл с отметкой времени 1 час назад и использовать find
с -newer
.
(b is A)
проверяет b на совместимость типов с A, что означает, что он проверяет как иерархию наследования b, так и реализованные интерфейсы для типа A.
b.GetType() == typeof(A)
, с другой стороны, проверяет точный того же типа. Если вы не квалифицируете типы далее (то есть приведение), то вы проверяете объявленный тип b.
В любом случае (используя любой из вышеперечисленных) вы получите true
, если b - точный тип А.
Будьте внимательны, чтобы знать, почему вы хотите использовать точные типы в одной ситуации, а не в другой:
Редактировать:
В вашем примере,
if(b is A) // this should return false
превратить его в точную объявленную проверку типа, используя:
if (b.GetType() == typeof(A))
использовать:
if (b.GetType() == typeof(A)) // this returns false
Ваш пример кода кажется противоположным вашему вопросу.
bool isExactTypeOrInherited = b is A;
bool isExactType = b.GetType() == a.GetType();
bool IsSameType(object o, Type t) {
return o.GetType() == t;
}
Затем вы можете вызвать метод следующим образом:
IsSameType(b, typeof(A));