使用var定义变量时有以下四个特点:
1. 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式:
var s;
s = “abcd”;
2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。
3. var要求是局部变量。
4. 使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。
E.g
public static SmtpClient InitSmtpClient()
{
string strSmtpServer = ConfigurationManager.AppSettings["SMTPServer"];
string strFrom = ConfigurationManager.AppSettings["SMTPUser"];
string strFromPass = ConfigurationManager.AppSettings["SMTPPwd"];
#region 8/2/2010 Modify by Axl, can't assign value after using var create a object.
//var client = new SmtpClient(strSmtpServer)
//{
// Credentials = new NetworkCredential(strFrom, strFromPass),
// DeliveryMethod = SmtpDeliveryMethod.Network,
// UseDefaultCredentials = false
//};
SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
#endregion
return client;
}
在以上代码中,如果用var,则返回的client中的Credentials为空。