Eth*_*len 13 .net c# cocoa objective-c
什么是C#equivelant NSMutableArray和NSArray?
C#是否具有可变且不可变的?我注意到string默认情况下似乎是可变的.显然我对C#完全是新手.
如果你能告诉我如何在C#中快速填充数组,那将是一个奖励.谢谢.
Bol*_*ock 15
这将是ArrayList与object[]分别,如果你采取的弱类型性质NSMutableArray和NSArray考虑.
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框架中一样.每次为变量分配新字符串时,只需将变量指向或引用另一个对象即可.
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)