2011-12-11 18 views

Respuesta

14

Eso sería ArrayList y object[] respectivamente, si se toma la naturaleza tipificación débil de NSMutableArray y NSArray en cuenta.

Las matrices y las listas en C# (al menos para .NET 2.0 y superior) también se pueden escribir fuertemente, por lo que dependiendo del tipo de objeto que esté almacenando, puede especificar ese tipo. Por ejemplo, si solo tiene objetos NSString en un NSMutableArray en su código Objective-C, usaría List<string>, y si los tiene en un NSArray, usaría string[] con un tamaño fijo.

Para inicializar de forma rápida y rellenar una lista o una matriz en C#, puede utilizar lo que se conoce como un collection initializer:

List<string> list = new List<string> { "foo", "bar", "baz" }; 
string[] array = { "foo", "bar", "baz" }; // Shortcut syntax for arrays 

string en C# es inmutable, al igual que NSString en el marco de la Fundación. Cada vez que asigna una nueva cadena a una variable, simplemente apunta o refiere la variable a un objeto diferente.

+0

no se dio cuenta de que sobre las cadenas. Gracias –

+0

Pregunta rápida ... ¿cómo hago una lista débil? Su ejemplo muestra una lista fuertemente tipada. –

+0

Ya no debería necesitar usar colecciones de tipo débil, pero si lo necesita puede usar una 'ArrayList' no genérica. – BoltClock

4
List<String> stringList = new List<String>(); 
stringList.Add("Test"); 

Cadena en C# es inmutable. El equivalente de NSMutableString en C# es StringBuilder. C#, a diferencia de Objective-C no representa claramente la intención del método en el nombre del método. Por ejemplo, ambas clases String y StringBuilder tienen un método llamado Reemplazar que podría pensar, reemplaza los caracteres. String.Replace reemplaza y devuelve la nueva cadena mientras que StringBuilder.Replace realiza un reemplazo en contexto.

La mayoría de los métodos en la mayoría de las clases en C# (y también en Java) funcionan así.

En Obj-C, las convenciones de nomenclatura son claras, es bien

[NSString stringByReplacing...] 
[NSMutableString replace...] 
+0

También es bueno saberlo. ¡Gracias! –

Cuestiones relacionadas