if(!(child is IContainer))
est le seul opérateur à l'aller (il n'y a pas d' IsNot
opérateur).
Vous pouvez construire une méthode d'extension qui n':
public static bool IsA<T>(this object obj) {
return obj is T;
}
et puis l'utiliser pour:
if (!child.IsA<IContainer>())
Et vous avez pu suivre sur le thème:
public static bool IsNotAFreaking<T>(this object obj) {
return !(obj is T);
}
if (child.IsNotAFreaking<IContainer>()) { // ...
Mise à jour (en tenant compte de l'OP de l'extrait de code):
Puisque vous êtes en fait un moulage de la valeur par la suite, vous pouvez simplement utiliser as
à la place:
public void Update(DocumentPart part) {
part.Update();
IContainer containerPart = part as IContainer;
if(containerPart == null) return;
foreach(DocumentPart child in containerPart.Children) { // omit the cast.
//...etc...