b when b.NumberOfPages > 100: //some action break; case PaperBook b: //some action break; case Ebook e when e.PublicationYear > (new DateTime(2000, 1, 01)).Year: //some action break; case Ebook e: //some action break; default: //some action break; case null: throw new ArgumentNullException(nameof(newBook)); }