我正在发出xdoc.Descendants("grandparent")
.Elements("parent")
.FirstOrDefault(o => (string)o == "targetvalue")
.Add(new XElement("grandchild", grandchildvalue));
请求,我必须在其中发送HTTP
值。我和他们两个都试过了。
两者都以同样的方式运作。我很困惑哪个更好?他们之间有什么区别吗?
答案 0 :(得分:4)
gcc -dM -E - </dev/null | sort
是与@(YES)
相同的文字。我不知道直接调用文字表现是否会有点慢。
答案 1 :(得分:2)
一个是literal。另一个是通过方便初始化程序创建的。
它们最终成为具有相同内容的相同类型的对象,但我怀疑第一个对您(以及其他查看您的代码的人)更容易阅读。
答案 2 :(得分:2)
两种方法没有区别,你应该没问题。我更喜欢的是[NSNumber numberWithBool:YES]
,因为如果你回到你的代码进行调试,它有时更具可读性。 @(是)是nsnumber的文字语法,当你使用@&#34; string&#34;时,它们完全一样。这会为你创建NSString
答案 3 :(得分:2)
不。编译器会将@YES
转换为[NSNumber numberWithBool:YES]
。
答案 4 :(得分:2)
@(YES)是编译器的特性。实际上,@(YES)转换为[NSNumber numberWithBool:YES],性能没有差异。它是为了方便和可读性而提供的(类似于@ [],@ {})。