private void button1_Click(object sender, EventArgs e)
{
string aa = "111";
StringBuilder bb = new StringBuilder("111");
string cc = bb.ToString();
string dd = "111";
string ee = "222";
OpTest(aa, ee);
} private void OpTest<T>(T s, T t) where T : class
{
if (t ==s)
{ MessageBox.Show("Y");
}
else
{
MessageBox.Show("N");
}
}
前提: 在范型中使用class约束的时候,如果使用==,系统只会测试引用同一性,而不会测试值相等
如上代码的测试结果:
OpTest(aa, cc); "N"
OpTest(aa, dd); "Y"
OpTest(aa, ee); "N"
这里我不明白的是aa和dd 他们应该是分配的两个地址空间,怎么会是引用同一呢? 另外引用同一性的真正含义是什么,也不很清楚, 有知道的指点一下,谢了。
{
string aa = "111";
StringBuilder bb = new StringBuilder("111");
string cc = bb.ToString();
string dd = "111";
string ee = "222";
OpTest(aa, ee);
} private void OpTest<T>(T s, T t) where T : class
{
if (t ==s)
{ MessageBox.Show("Y");
}
else
{
MessageBox.Show("N");
}
}
前提: 在范型中使用class约束的时候,如果使用==,系统只会测试引用同一性,而不会测试值相等
如上代码的测试结果:
OpTest(aa, cc); "N"
OpTest(aa, dd); "Y"
OpTest(aa, ee); "N"
这里我不明白的是aa和dd 他们应该是分配的两个地址空间,怎么会是引用同一呢? 另外引用同一性的真正含义是什么,也不很清楚, 有知道的指点一下,谢了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货