return (
Page is WebAdminPriceRanges ||
Page is WebAdminRatingQuestions
);
¿Hay una manera de hacerlo como:"es" C# múltiples opciones
return (
Page is WebAdminPriceRanges || WebAdminRatingQuestions
);
return (
Page is WebAdminPriceRanges ||
Page is WebAdminRatingQuestions
);
¿Hay una manera de hacerlo como:"es" C# múltiples opciones
return (
Page is WebAdminPriceRanges || WebAdminRatingQuestions
);
No. La primera forma en que ha especificado es la única forma razonable de hacer esto .
No, tal sintaxis no es posible. El operador is requiere 2 operandos, el primero es una instancia de un objeto y el segundo es un tipo.
Usted podría utilizar GetType()
:
return new[] { typeof(WebAdminPriceRanges), typeof(WebAdminRatingQuestions) }.Contains(Page.GetType());
realmente. Puede buscar la instancia Type
dentro de una colección, pero eso no tiene en cuenta las conversiones implícitas que is
realiza; por ejemplo, is
también detecta si el tipo es base de la instancia en la que opera.
Ejemplo:
var types = new[] {typeof(WebAdminPriceRanges), typeof(WebAdminRatingQuestions)};
// this will return false if Page is e.g. a WebAdminBase
var is1 = types.Any(t => t == Page.GetType());
// while this will return true
var is2 = Page is WebAdminPriceRanges || Page is WebAdminRatingQuestions;
n, C# no es el idioma Inglés, no se puede omitir un operando de una operación de dos operando.
No, no puedes hacer esto.
si su intención es devolver una página, única si es de tipo WebAdminPriceRanges
oWebAdminRatingQuestions
, que fácilmente puede hacerlo con si.
Por ejemplo:
if(Page is WebAdminPriceRanges || Page is WebAdminRatingQuestions)
return Page;
return null;
Si se asume que es una página de referencia tipo o al menos valor anulable tipo
Las demás respuestas son ciertas, pero aunque no estoy seguro de cuál es la prioridad del operador. Si el operador es más bajo que el operador lógico u operador, estarías dividiendo dos clases juntas, lo que no tiene sentido.
No creo que sea posible, y no tiene sentido. –
El operador is toma dos operandos en C#. Eso es realmente todo lo que hay para decir. Sin embargo, con un poco de fantasía, "podría ser" similar a 'IsAnyOf (x, myListOfTypes)' (usaría 'IsAssignableFrom' internamente, no' is'.) De hecho, he visto esto antes en SO. (Intente buscar 'IsAssingableFrom'.) –
p. http://stackoverflow.com/questions/3013694/use-of-isassignablefrom-and-is-keyword-inc-c-sharp –