Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dudas c#

Iniciado por AbelNightroad, 29 de Junio de 2006, 11:03:22 PM

« anterior - próximo »

AbelNightroad

Cita de: "Vicente"Hola,
el método invoke devuelve un object. Ese object es el resultado de la llamada de tu método. Con ReturnType sacas el tipo real de ese object. Era eso lo que querías no?

Sip, eso mismo. La verdad es que lo tenia delante de las narices y no lo vi :oops: Gracias, coleguillas :)
bel Nightroad (a.k.a. Lord Trancos)

AbelNightroad

Bueno, añado una nueva duda a la lista :)

Tengo una flamante Ubuntu instalada en otra partición con la intención de convertirse en mi sistema operativo habitual (a ver si esta vez, si que si...) y me preguntaba si alguien de por aqui ha usado mono o lo que sea necesario para programar c#, y que tal la experiencia y el cross-plataform de las aplicaciones desarrolladas al compilarlas con windows.  :roll:
bel Nightroad (a.k.a. Lord Trancos)

Zaelsius

Mi experiencia:

- Las aplicaciones de consola funcionan bien entre plataformas
- De los Windows.Forms mejor olvidarse por ahora, por no hablar de intentar meter OpenGL de por medio.

No te recomiendo usar Mono/C# para crear aplicaciones(con ventanas) multi-plataforma. Antes me iría a Java o WxWidgets.. aunque ninguna de estas dos soluciones suele dar un "look & feel" consistente entre plataformas distintas de Windows.

Hay muchas más soluciones.. que si Python+GTk, GTK#, etc.. etc.. pero al menos a mí me parecen un infierno a la hora de distribuir fuera de Windows, además de que me dan "mu mal rollo" jeje.

Resumiendo: estás jodido ^^

AbelNightroad

CitarResumiendo: estás jodido ^^

xDDD haber empezado por ahi.

Bueno, pues nada... ya veremos que hago. Thanks ;)
bel Nightroad (a.k.a. Lord Trancos)

AbelNightroad

Otra dudilla... si paso una string como parametro de una funcion, esta se pasa por valor. Si quiero mas velocidad la pueda pasar por referencia, pero no me gusta pq el usuario de la funcion se puede llevar la falsa sensacion de que la funcion podria modificar la string. ¿Hay alguna forma de pasar por referencia una string pero que esta no se pueda modificar dentro de la funcion?
bel Nightroad (a.k.a. Lord Trancos)

Vicente

Me da a mi que no...

Un saludo!

Vicente

ethernet

Vamos marcha atrás, en C++ conseguimos que const tuviera sentido y ahora, algo fundamental como es const lo quitan ... :?

No hay nada similar en C# ? aunque ahora que pienso en python tampoco conozco el atributo const .. :/

Vicente

No, no existe algo como el const de C++ en C# (existe la palabra reservada pero es para declarar constantes).

Un saludo!

Vicente

AbelNightroad

Pues vaya... si, era eso lo que necesitaba, el viejo y mitico const. En delphi tambien estaba, y ya me extrañaba que por mucho que buscará no habia nada parecido...  :?
bel Nightroad (a.k.a. Lord Trancos)

AbelNightroad

Otra dudilla. Tengo un archivo de texto que forma parte del proyecto y que edito desde el IDE. Como puedo hacer que al compilar, el IDE me lo copie a la carpeta Debug/Release?
bel Nightroad (a.k.a. Lord Trancos)

zupervaca

Tienes eventos para hacer lo que quieras en los diferentes procesos de la compilacion en las propiedades del proyecto.


AbelNightroad

bel Nightroad (a.k.a. Lord Trancos)

Prompt

En vb.Net existe ReDim Preserve, no obstante en c# puedes hacer esto.

Cuando añades un elemento más al array...

*Nota: Revisalo que he hecho copy/paste de un código mio y lo he cambiado.


string[] onlyPattern = new string[1];

string[] tempArray = new string[onlyPattern.Lenght + 1];

// Redimensionamos el array
if ( onlyPattern != null )
Array.Copy(onlyPattern, tempArray, Math.Min(onlyPattern.Length, tempArray.Length));

tempArray[onlyPattern.Lenght] = "nuevo elemento";

onlyPattern = tempArray;



Te rescato un redim para c# de internet:

private void ReDim<T>(ref T[] arr, int length)

{

   T[] arrTemp = new T[length];

   if (length > arr.Length) {

       Array.Copy(arr, 0, arrTemp, 0, arr.Length);

       arr = arrTemp;

   } else {

       Array.Copy(arr, 0, arrTemp, 0, length);

       arr = arrTemp;

   }

}

ref: http://secretgeek.net/generic_redim_csharp.asp


En la versión 2.0 del framework existe una setencia para c# que es equivalente a Redim, y no la encuentro en inet.

Bueno llego tarde pero en fin :P ahi tienes.

Vicente

Hola,

lo mismo te refieres a esto:

public static void Resize<T> (ref T[] array, int newSize)

Es un método estático de la clase System.Array. Un saludo!

Vicente

AbelNightroad

He estado haciendo pruebas usando el c# como lenguaje script, y la verdad es que es una pasada :D Y mas ahora que me he dado cuenta de una forma mas comoda de usarlo, en lugar de con invoke.

Lo queria para hacer scripts de exportacion en varios formatos, asi que lo que he hecho es crear un interfaz y que todos los scripts de exportacion lo implementen. De ese modo puedo crear un objeto con ese interfaz y usar los metodos de forma totalmente transparente (sin tener que usar el invoke), como si de un objeto normal se tratará.  :roll:
bel Nightroad (a.k.a. Lord Trancos)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.