什么是NSMutableArray和NSArray的C#equivelant?

Eth*_*len 13 .net c# cocoa objective-c

什么是C#equivelant NSMutableArrayNSArray

C#是否具有可变且不可变的?我注意到string默认情况下似乎是可变的.显然我对C#完全是新手.

如果你能告诉我如何在C#中快速填充数组,那将是一个奖励.谢谢.

Bol*_*ock 15

这将是ArrayListobject[]分别,如果你采取的弱类型性质NSMutableArrayNSArray考虑.

C#中的数组和列表(至少对于.NET 2.0及更高版本)也可以是强类型的,因此根据您存储的对象类型,您可以指定该类型.例如,如果你在Objective-C代码中只有NSString一个对象NSMutableArray,你可以使用它List<string>,如果你有它们NSArray,你可以使用string[]固定大小.

要在C#中快速初始化和填充列表或数组,可以使用所谓的集合初始值设定项:

List<string> list = new List<string> { "foo", "bar", "baz" };
string[] array = { "foo", "bar", "baz" }; // Shortcut syntax for arrays
Run Code Online (Sandbox Code Playgroud)

string在C#中是不可变的,就像NSString在Foundation框架中一样.每次为变量分配新字符串时,只需将变量指向或引用另一个对象即可.


Mug*_*nth 5

List<String> stringList = new List<String>();
stringList.Add("Test");
Run Code Online (Sandbox Code Playgroud)

C# 中的字符串是不可变的。C# 中 NSMutableString 的等价物是 StringBuilder。C#,不像Objective-C,没有在方法名上清楚地表示方法意图。例如,String 和 StringBuilder 类都有一个名为 Replace 的方法,您可能会认为它替换字符。String.Replace 替换并返回新字符串,而 StringBuilder.Replace 进行就地替换。

C#(和 Java)中大多数类中的大多数方法都是这样工作的。

在 Obj-C 中,命名约定很明确,要么是

[NSString stringByReplacing...]
[NSMutableString replace...]
Run Code Online (Sandbox Code Playgroud)