FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Switch en C#
como puedo hacer para que en C# en un switch pueda comparar un rango, como en pascal seria:
case x of 'a'..'z': begin {Instrucciones} end; '1'..'9': begin {Instrucciones} end; end; como puedo hacer la misma construccion en C#? Muchas gracias, anticipada.... |
#2
|
||||
|
||||
Hola,
Código:
int apuesta = 4; switch (apuesta) { case 0: Console.WriteLine("¿Cero patatero?"); break; case 1: Console.WriteLine("¡Uno no es ninguno!"); break; case 2: case 3: Console.WriteLine("¡... dos, tres, responda otra vez!"); break; default: Console.WriteLine("¡Anímese y haga su apuesta!"); break; } |
#3
|
||||
|
||||
Por lo que veo entonces, al igual que en C, no es posible esa maravilla de Delphi de poder especificar rangos. Ha de poner todas las etiquetas case 'a' hasta case 'z'.
// Saludos |
#4
|
||||
|
||||
Hola,
Cita:
Esta mañana me he puesto a contar los subdirectorios de un directorio con Delphi. O fue anoche, no recuerdo bien. El caso es que me topaba con algunos problemas, porque "como lo hacía" (véase abajo) no me contaba los directorios ocultos, o los del sistema,... en fin, yo quería contar todos los subdirectorios de un directorio, pero, todos, todos. Pues bien, no digo yo que no pueda mejorarse mucho, pero, esto es al cabo lo que hize con Delphi para lograr lo dicho: Entonces estaba con el Visual C# por aquí rodando y me he dicho, ¿cómo lo harías en C#, teniendo en cuenta que quieres listar todos los subdirectorios, incluidos los ocultos, los de sistema, los de solo lectura? Pues lo hize, y el caso es que no guardé lo escrito, pero, tampoco importa mucho, se escribe de nuevo, aquí va: Código:
public int NumeroSubDirectorios(string directorio) { if(System.IO.Directory.Exists(directorio)) return System.IO.Directory.GetDirectories(directorio).Length; else return 0; } |
#5
|
||||
|
||||
La comparacion que haces no es justa. Eso que escribiste DEFINITIVAMENTE NO ES DEL C#!
Es de la API de .NET. Exactamente igual codigo se puede hacer con Delphi, si es Delphi.NET
API <> Lenguaje
__________________
El malabarista. Última edición por mamcx fecha: 26-09-2005 a las 19:41:03. |
#6
|
||||
|
||||
Hola,
Cita:
Y llevas razón, hay poco C# ahí y más bien mucho .NET. Bien es cierto que podría escribirse una clase "Directory" en Delphi que contara con un método "GetDirectories" y reducir el código para usar esa clase a un par de líneas, como en C#, que tal vez detrás de la clase "Directory" de C# halla mucha tela que cortar, lo ignoro. De todos modos creo que lo que dice roman puede hacerse en C# y soy yo el que no sé hacerlo. Y por dar al César lo que de él es diré que las primeras tomas de contacto, como suele decirse, con C#, me parecieron estupendas, personalmente, claro está, el lenguaje me pareció una maravilla, hablando de maravillas |
#7
|
||||
|
||||
Hola,
Cita:
De todas maneras no se me escapa que en este Hilo es muy probable que me fuera por los cerros de Úbeda... las cosas son como son, para qué negarlo, hay veces que incluso son lo que parecen que son |
#8
|
||||
|
||||
La comparación no es justa no sólo por lo que dice mamcx. Es como si en Delphi pusiera algo como:
Es decir, incluyo una librería que ya contenga una función que haga lo que quiero. Claro que en .NET la ventaja sería que la biblioteca ya está hecha y en Delphi tuvimos que disponer de una de terceros (la referencia a Al Gonzalez es adrede) Por otra parte no era mi intención menospreciar a C# ni mucho menos, sólo apuntar que el requerimiento original- especificar un rango en la clásula switch -parece no ser posible. // Saludos |
#9
|
||||
|
||||
Nueve meses después
¡Hola a todos!
Cita:
Por cierto, ahora Interfaz GH se llama GH Freebrary y estoy en el proceso de convertir todos sus identificadores al idioma inglés. También estoy depurando la biblioteca eliminando varias funciones que estaban muy fumadas . Está quedando muy padre, pero últimamente casi no he tenido tiempo de seguirle, aún me faltan algunos cientos de funciones por revisar. Volviendo al tema del switch, es probable que aún en su versión felina (#), el lenguaje C siga careciendo de la ventaja mencionada del Case délphico. Supongo que esto es para mantener una cierta compatibilidad con todos los compiladores Cees del mundo, algo así como lo que sucede con SQL, que, sabemos, podría tener muchísimas mejoras, pero de oficializarse éstas se obligaría a muchos fabricantes a modificar sus gestores. Un abrazo del 1 al 10. Al González. |
#10
|
||||
|
||||
Hola,
Bueno... leyendo este Hilo gracias a que lo revivió Al, lo cierto es que no me termino de creer que lo dejara pasar tal cual. O sea, he tratado de comparar un lenguaje de programación con la API de otro lenguaje de programa, y eso no es correcto, como ya se ha dicho. Evidentemente, C# es un lenguaje de alto nivel, de propósito general y orientado a objetos. Y Delphi es exactamente así también. Por lo tanto, es evidente que con Delphi podrá hacerse prácticamente todo lo que pueda hacerse con C# y viceversa. Eso parece claro al menos hablando de Windows. Y no quería dejar de decirlo. |
|
|
|