2010-03-23 20 views
5

he estado programando en JAVA y C todos mis años en la universidad, pero ahora que estoy aprendiendo C# y la construcción de una pequeña aplicación, y he encontrado problemas con esto:condicional o en C#

if (taxonType.Equals(null) ¦¦ taxonID == -1) 

Obtengo un subrayado rojo para este condicional, y realmente no sé por qué, porque según lo que he visto, debería estar bien, pero no es así. ¿Se me escapa algo?

gracias a todos de antemano, Victor


Gracias a todos !!! Me estaba enojando por esto. El caso es que soy español y estoy acostumbrado a tener la clave de tubería | exactamente en el mismo lugar donde | está en la configuración estadounidense ... Estaba viendo esto | extraño, pero pensé que era lo mismo ...

Gracias por la respuesta rápida !! Victor

+0

lo error exacto que está recibiendo la descripción de la "subrayado rojo"? – Marek

Respuesta

11
if (taxonType == null || taxonID == -1) 

Modificado para el código correcto, así como responder a la pregunta formulada

+2

Como ya se dijo en otras respuestas, si taxonType es realmente una referencia nula, su prueba arrojará ... – Seb

+1

El código actualizado, originalmente respondía la pregunta en lugar de corregir el resto del código.Si envía la solicitud, también puedo terminarla;) – rrrr

4

No sé los tipos de taxonType y taxonID pero debería funcionar así:

if (taxonType == null || taxonID == -1) 
5

Lo es '|'? ¿Estás seguro de que es el mismo personaje que '|'?

+1

Debería ser un comentario. –

+1

@Filip vez una pregunta proporciona una respuesta mejor que una respuesta de largo aliento, sobre todo si la pregunta original se formuló de manera poco clara ("Me subrayado rojo") – Marek

2

Parece que está usando algún carácter especial, que no se reconoce como el carácter predeterminado de la tubería (|). Tal vez deberías verificar la configuración de tu teclado?

1

Deberías usar "||" en lugar de "||".

2

el problema es que si taxonType realmente es nulo, entonces usar la función .Equals en él arrojaría una NullReferenceException. vaya con == en lugar de Igual a

2

si taxonType es realmente nulo, arrojará una excepción porque intentará llamar a su método Equals.

si dijo si (taxOnType == null) || taxonID == -1) estarás bien.

1

Su prueba de nulo no debería usar .Equals, ya que si el objeto es nulo, el intento de acceder a un miembro arrojará un NullReferenceException.

Uso:

if (taxonType == null || taxonID == -1) 

Tampoco está claro si está utilizando el carácter de canalización correcta |, como la suya se muestra como ¦.

+0

Si eso es todo, probé los iguales porque taxonType era una cadena, pero mi primer intento fue el código que escribió. Como seguí recibiendo el subrayado rojo Probé diferentes tipos de condiciones para ver si yo estaba haciendo mal ... Gracias :) – vikitor

1

si (String.IsNullOrEmpty (taxonType) || taxonID < 0)

y hacer taxón como una estructura

+0

String.IsNullOrEmpty es sólo para uso con cuerdas. no sabemos qué tipo es taxonType. Además, String.IsNullOrEmpty devolvería true si taxonType es "". Ese no es el comportamiento que queremos. Use taxonType == null en su lugar. TaxonID <0 no es suficiente. –

+0

taxonType es una cadena, como lo estoy usando para crear un formulario de búsqueda, me puse taxonType a null si no hay taxonType seleccionado y taxonID es -1 si no hay taxonID seleccionado en forma ... Es sólo para desviar el flujo de control. Gracias por los consejos de todos modos, me ayuda a repensar mi aplicación con herramientas que no sabía o creía antes :) – vikitor