String类型有一个叫做 Concat(object, object) 的操作,c#编译器在遇到这种表达式时会编译为调用它的连接操作。而假如是字符串的拼接,就直接编译为.net的字符串拼接,而不会调用 Concat 方法。
解决方案 »
- web service接口调用时报“未处理的SoapException”?
- 如何读取DataGridView中的DataGridViewColumn当前选定项的显示值(DisplayMember)
- listview 分行显示
- 精疲力尽!求救! 关于ASP.net C#调用VB的ActiveX DLL
- Matrix 的问题?
- 救救我吧!--关于“撤销签出“命令
- 部署??
- 报警预案联动
- Facade Layer 和 Business Layer 有什么区别?
- 数据库更新问题
- C#“System.Data.SqlClient.SqlException”类型的未经处理的异常出现在 System.Data.dll中
- 发现和C++的泛型相比,C#的泛型简直是垃圾都不如
同一个类型(包括子类型)的相同名称的方法,有不同的参数签名,这就是重载。因此看接口格式来判断重载。如果你要看内部实现机制,那么需要读源代码。包括使用vs自动打开开源的.net framework源代码,或者使用任何一种逆向工程工具。我们可以看看重载了的 Concat 的其中一个public static string Concat(object arg0, object arg1)
{
if (arg0 == null)
{
arg0 = Empty;
}
if (arg1 == null)
{
arg1 = Empty;
}
return Concat(arg0.ToString(), arg1.ToString());
}
编译器会把字符串常量连起来没错吧,对变量或者不同的类型才会调用concat