在表现方面,做法有何不同:
$scope.checkbox = function(isselected) {
if (vm.target[isselected]) {
$scope.btnClass = "disabled";
}
else {
$scope.btnClass = "";
}
};
vs stringX + 'y'
?
如果有差异,为什么会有?
我的问题主要与C#有关。
答案 0 :(得分:12)
两者之间绝对没有区别。例如,如果您有以下两个功能:
static string Method1()
{
var stringX = "abc";
var res = stringX + 'y';
return res;
}
static string Method2()
{
var stringX = "abc";
var res = stringX + "y";
return res;
}
这是C#编译器发出的相应IL(内置在Release模式下):
.method private hidebysig static string Method1 () cil managed
{
IL_0000: ldstr "abc"
IL_0005: ldstr "y"
IL_000a: call string [mscorlib]System.String::Concat(string, string)
IL_000f: ret
}
.method private hidebysig static string Method2 () cil managed
{
IL_0000: ldstr "abc"
IL_0005: ldstr "y"
IL_000a: call string [mscorlib]System.String::Concat(string, string)
IL_000f: ret
}
编译器足够智能,可以为极不寻常的stringX + 'y'
构造发出适当的IL。