2007年10月6日星期六

C# 3.0新特性系列:隐含类型var | 站长资讯

¡¡¡¡Ò»£®ÉñÆæµÄvar

¡¡¡¡ÔÚC#3.0ÖÐÔö¼ÓÁËÒ»¸ö±äÁ¿ÉùÃ÷var£¬Õâ¸öÉùÃ÷ºÍJavaScript µÄ varÀàËÆ£¬µ«Ò²Óв»Í¬¡£

¡¡¡¡1. Ïàͬµã£¬Ëü¿ÉÒÔÓÃvarÀ´ÉùÃ÷ÈκÎÀàÐ͵ľֲ¿±äÁ¿¡£

¡¡¡¡2. ²»Í¬µã£¬Ëü½ö½ö¸ºÔð¸æËß±àÒëÆ÷£¬¸Ã±äÁ¿ÐèÒª¸ù¾Ý³õʼ»¯±í´ïʽÀ´ÍƶϱäÁ¿µÄÀàÐÍ£¬¶øÇÒÖ»ÄÜÊǾֲ¿±äÁ¿¡£

¡¡¡¡¶þ£®Ïàͬµã

¡¡¡¡Ëü¿ÉÒÔÉùÃ÷

var integer = 10;
var name = %26quot;edisundong%26quot;;
var numbers = new int[] { 1, 2, 3 };
¡¡¡¡Èý£®²»Í¬µã

¡¡¡¡var½ö½öÊÇÒ»¸ö¹Ø¼ü×Ö£¬Ëü²¢²»ÊÇC#3.0ÖеÄÒ»ÖÖеÄÀàÐÍ£¬¶øÊǸºÔð¸æËß±àÒëÆ÷£¬¸Ã±äÁ¿ÐèÒª¸ù¾Ý³õʼ»¯±í´ïʽÀ´ÍƶϱäÁ¿µÄÀàÐÍ£¬ÉÏÃæµÄÓï¾äÏ൱ÓÚ

int integer = 10;
string name = %26quot; edisundong %26quot;;
int[] numbers = new int[] { 1, 2, 3 };
¡¡¡¡Èý£®×¢Òâµã

¡¡¡¡1.ÔÚÉùÃ÷ʱ±ØÐëͬʱ¸³Öµ£¬ÒòΪÉùÃ÷ÒÀÀµÓÚ¸³ÖµºÅÓұߵıí´ïʽ£¬Èç¹ûÓÐÏÂÃæµÄÓï¾ä£º

var integer;
integer = 10;
¡¡¡¡±àÒëʱ»á±¨Implicitly typed locals must be initialized´íÎó¡£

¡¡¡¡2.ÔÚʹÓÃvarÉùÃ÷Ò»¸ö¾Ö²¿±äÁ¿ºó£¬ËüÈÔÈ»¾ßÓÐÇ¿ÀàÐÍ£¬¿ÉÒÔ×öÈçϲâÊÔ£º

var integer = 10;
integer = %26quot; edisundong %26quot;;
¡¡¡¡±àÒëʱ»á±¨Cannot implicitly convert type 'string' to 'int'´íÎó¡£

¡¡¡¡3. ³õʼ»¯Æ÷±í´ïʽµÄ±àÒëÆÚÀàÐͲ»¿ÉÒÔÊÇ¿Õ(null)ÀàÐÍ£¬±àÒëÆ÷ÎÞ·¨¸ù¾ÝnullÀ´Íƶϳö¾Ö²¿±äÁ¿µÄÀàÐÍ£¬ÈçÓÐÏÂÃæµÄÓï¾ä£º

var integer = null;
¡¡¡¡±àÒëʱ»á±¨Cannot assign '%26lt;null%26gt;' to an implicitly typed local´íÎó¡£

¡¡¡¡4. ³õʼ»¯Óï¾ä±ØÐëÊÇÒ»¸ö±í´ïʽ£¬³õʼ»¯±í´ïʽ²»Äܰüº¬Ëü×ÔÉí£¬µ«ÊÇ¿ÉÒÔÊǰüº¬Ò»¸ö¶ÔÏó»ò¼¯ºÏ³õʼ»¯Æ÷µÄÒ»¸önew±í´ïʽ(¼´ÄäÃûÀàÐÍ)¡£

¡¡¡¡Èç¿ÉÒÔÕâÑùÈ¥ÉùÃ÷£º

var coll = new Hashtable();
¡¡¡¡5. varµÄÉùÃ÷½öÏÞÓÚ¾Ö²¿±äÁ¿£¬Ò²¿ÉÒÔ°üº¬ÔÚforeach¡¢for¡¢usingÓï¾äÖС£ÏÂÃæµÄʹÓÃÊÇ´íÎóµÄ£º

class Program
{
¡¡private var i = 10; //È«¾Ö˽ÓбäÁ¿¡£
¡¡static void Main(string[] args)
¡¡{ }
}
¡¡¡¡±àÒëʱ»á±¨The contextual keyword 'var' may only appear within a local variable declaration´íÎó¡£

没有评论: