¡¡¡¡1.ÒþÐ;ֲ¿±äÁ¿

¡¡¡¡C# 3.0ÒýÈëÁËÒ»¸ö½Ð×ö¡°var¡±µÄйؼü×Ö¡£Õâ¸ö¹Ø¼ü×ÖÔÊÐí¿ª·¢Õß½¨Á¢Ò»¸ö±äÁ¿£¬µ«²»±ØÃ÷È·ËüµÄÀàÐÍ¡£ÀýÈ磬ÓÃvar˵Ã÷Ò»¸ö×Ö·û´®£¬¾ÍÏñÕâÑù£º

varmyData = "This is my data";

¡¡¡¡×¢Ò⣬ÕâÀﲢûÓÐÌáµ½myData±äÁ¿ÊÇÒ»¸ö×Ö·û´®£¬¶øC# 2.0È´ÒªÇóÕâÒ»µã¡£

¡¡¡¡ËäÈ»varÔÊÐíÄú½¨Á¢Òþº¬µÄÀàÐÍ£¬Ëü²¢Ã»ÓнµµÍC#ŨºñµÄÀàÐÍÌØÕ÷¡£var¹Ø¼ü×ÖÖ»ÓÐÔÚ½¨Á¢±äÁ¿Ê±ÓÐÓã¬Ò»µ©Äú½¨Á¢±äÁ¿²¢ÇÒÈ·¶¨ËüµÄÀàÐÍÒԺ󣬾Ͳ»ÄÜÔÙÓÃvarÀ´¸Ä±äÒ»¸ö±äÁ¿µÄÀàÐÍ¡£

¡¡¡¡ÀýÈ磬Õâ¶Î´úÂëûÓÐ×÷Óãº

varmyDate = DateTime.Now;
myDate = "Hello.";

¡¡¡¡Ê¹ÓÃvar¹Ø¼ü×Ö»¹»á²úÉúÒ»¸öÓÐȤµÄ½á¹û£¬Ëü¿ÉÒÔ°ïÖú¿ª·¢Õß¼õÉÙ½¨Á¢±äÁ¿Ê±µÄ´úÂëÊäÈë¡£ÀýÈ磬ÔÚC# 2.0Öн¨Á¢Ò»¸öCustomer¶ÔÏó£¬ÐèÒªÊäÈëÒÔÏ´úÂ룺

Customer myCustomer = new Customer();

¡¡¡¡Ê¹ÓÃеÄvar¹Ø¼ü×Ö£¬ÔòÖ»ÒªÊäÈ룺

varmyCustomer = new Customer();

¡¡¡¡var¹Ø¼ü×ÖµÄÁíÒ»¸öÌØµãÔÚÓÚ£¬Ê¹ÓÃËü¿ÉÒÔ±ÜÃâ¸Ä±äÒ»¸ö·µ»ØÄ³¸öÀàÐͶÔÏóµÄ·½·¨µ÷Óá£ÀýÈ磬ÔÚC# 2.0ÖУ¬Èç¹ûÄúÐèÒªµ÷ÓÃÒ»¸ö·µ»ØCustomer¶ÔÏóµÄ·½·¨£¬ÄúÓ¦¸Ã±àдÒÔÏ´úÂ룺

Customer myCustomer = GetByName("Zach");

¡¡¡¡Èç¹ûij¸öʱºòGetByName·½·¨·µ»ØÒ»¸ö²»ÊÇCustomerµÄ¶ÔÏó£¬Õâ¶Î´úÂë¾ÍÎÞ·¨±àÒë¡£µ«ÊÇ£¬Èç¹ûÓ¦ÓÃvar¹Ø¼ü×Ö£¬Äú¾Í²»Óõ£ÐÄGetByName·µ»ØµÄ¶ÔÏóÀàÐÍ¡£

varmyData = GetByName("Zach");

¡¡¡¡ÏÖÔÚ£¬ÒòΪӦÓÃÁËvar¹Ø¼ü×Ö£¬GetByName·½·¨Äܹ»½øÐиı䣬·µ»ØÒ»¸öPerson¶ÔÏó£¬Õâ¸ö·½·¨µ÷ÓÃÒ²ÒÀÈ»ÓÐЧ¡£

¡¡¡¡2.extension·½·¨

¡¡¡¡ÔÚC#ÖУ¬Äú²»Äܼ̳кÍÀ©³äÓ÷ÃÎʱêʶ·û±ê¼ÇΪ¡°·â×°¡±µÄÀàÐÍ¡£µ«ÔÚC# 3.0ÖУ¬extension·½·¨ÔÊÐíÄúÀ©³äÈκÎÀ࣬ÉõÖÁÊDZê¼ÇΪ·â×°µÄÀà¡£ÀýÈ磬Èç¹ûÏ£ÍûÌí¼ÓÒ»¸öNoSpaces()·½·¨µ½×Ö·û´®ÀàÖУ¬ÎÒÃÇÒª¶¨ÒåÒ»¸öÀàËÆÁбíAÖеÄextension·½·¨¡£

¡¡¡¡ÁбíA

namespaceMyExtensionMethods
{
¡¡public static class Extension
¡¡{
¡¡¡¡public static void NoSpaces(this string data)
¡¡¡¡{
¡¡¡¡¡¡return data.Replace(" ", "");
¡¡¡¡}
¡¡}
}

¡¡¡¡ÔÚÒ»¸öÀàÖе¼ÈëÕâ¸öextension·½·¨Ê±£¬¿ª·¢Õß¾ÍÄܹ»¶ÔÕâ¸öÀà°üº¬µÄÈκÎ×Ö·û´®µ÷ÓÃNoSapces()·½·¨¡£

¡¡¡¡extension·½·¨µÄµÚÒ»¸ö²ÎÊý¾ö¶¨extension·½·¨µÄÓÐЧÀàÐÍ¡£ÔÚÕâÖÖÇé¿öÏ£¬¡°Õâ¸ö×Ö·û´®Êý¾Ý¡±£¨this string data£©±íÃ÷extension·½·¨ÊÊÓÃÓÚ×Ö·û´®ÀࣻÈç¹ûextension·½·¨ÒÔ¡°Õâ¸ö¶ÔÏóÊý¾Ý¡±£¨this object data£©ÎªµÚÒ»¸ö²ÎÊý£¬Ôò˵Ã÷Õâ¸ö·½·¨¶Ôÿ¸ö¶ÔÏóÓÐЧ¡£

¡¡¡¡Òª±íÃ÷ÄúÏ£Íûµ¼Èëextension·½·¨£¬Ö»ÐèÔÚËüÃǵÄÃüÃû¿Õ¼äÖаüÀ¨Ò»¸öusingÖ¸Áî¡£ÀýÈ磬ҪӦÓÃÉÏÃæËµÃ÷µÄ·½·¨£¬ÐèÒªÔÚÀàÎļþÖаüÀ¨Ò»¸öusing MyExtensionMethodsÖ¸Á£¨ÁбíB£©

¡¡¡¡ÁбíB

usingMyExtensionMethods;
namespace MyNamespace
{
¡¡public class MyClass
¡¡{
¡¡¡¡public MyClass()
¡¡¡¡{
¡¡¡¡¡¡string data = "this is my data";
¡¡¡¡¡¡//nospaces will contain "thisismydata".
¡¡¡¡¡¡string nospaces = data.NoSpaces();
¡¡¡¡}
¡¡}
}


¡¡¡¡×¢Òâextension·½·¨µÄÓÅÏȶȱÈinstance·½·¨µÍ¡£Òò´ËÈç¹ûinstance·½·¨ºÍextension·½·¨ÓÐͬÑùµÄÇ©Ãû£¬ÔòÓ¦Ö´ÐÐinstance·½·¨¡£

¡¡¡¡3.¶ÔÏó³õʼ»¯Æ÷

¡¡¡¡ÔÚC# 2.0ÖУ¬¿ª·¢ÕßÈÏΪ½¨Á¢Ðí¶à¹¹ÔìÆ÷À´É趨ij¸öÊôÐÔֵΪ¶ÔÏó³õʼ»¯¹ý³Ì¡£ÏÂÃæÊÇÒ»¸öÀý×Ó£º Àà·ÃÎÊCustomer·½·¨£º

Customer myCustomer = new Customer("Zach", "Smith");

¡¡¡¡CustomerÀ๹ÔìÆ÷£º

public Customer(string firstName, string lastName) : this()
{
¡¡this.FirstName = firstName;
¡¡this.LastName = lastName;
}

public Customer()
{}

¡¡¡¡C# 3.0½éÉÜÁËÒ»¸ö³õʼ»¯¶ÔÏóµÄз½·¨£¬ËüÔÊÐíÄúÔÚ³õʼ»¯¶ÔÏóʱÉ趨ÈκÎÊôÐÔÖµ¡£ÀýÈ磬ÔÚC# 3.0ÖУ¬ÉÏÃæµÄ´úÂë¿é¿ÉÒÔд³É£º

¡¡¡¡Àà·ÃÎÊCustomer·½·¨£º

Customer myCustomer = new Customer{FirstName = "Zach", LastName = "Smith" };

¡¡¡¡CustomerÀ๹ÔìÆ÷£º

public Customer()
{}

¡¡¡¡ÔÚC# 3.0´úÂëÖУ¬Ã»ÓÐÓë³õʼ»¯¶ÔÏó¶ÔÓ¦µÄ¹¹ÔìÆ÷¡£ÕâÑù£¬¿ª·¢Õ߾Ͳ»ÓÃΪÿ×éÐèÒªÉ趨µÄÊôÐÔ½¨Á¢²»Í¬µÄ¹¹ÔìÆ÷¡£

¡¡¡¡ÕâÑù²úÉúµÄÁíÍâÒ»¸öЧ¹ûÊÇ£º´úÂë±äµÃ¸üÈÝÒ×ÔĶÁÁË¡£ÀýÈ磬ËäÈ»ÎÒÃÇÇå³þÖªµÀÏÂÃæµÄ´úÂë¶ÔÒ»¸öCar¶ÔÏó½øÐÐÁ˳õʼ»¯£¬µ«ÎÒÃDz¢²»Çå³þÆäÖбäÁ¿µÄ×÷Óãº

Car car = new Car(18, 10, 550);

¡¡¡¡Ò»ÑÛ¿´À´£¬ÏÂÃæÕâÐдúÂë¸üÒ×ÔĶÁ£¬¾¡¹ÜÎÒÃDZØÐëÊäÈë¸ü¶à´úÂ룺

Car car = new Car { WheelDiameter = 18, WheelWidth = 10, Horsepower = 550 };

¡¡¡¡4.ÄäÃûÀàÐÍ

¡¡¡¡C# 2.0ÒýÈëÁËÄäÃû·½·¨£¬C# 3.0ÍÆ³öÄäÃûÀàÐÍ¡£ÄäÃûÀàÐÍÓëÄäÃû·½·¨ÀàËÆ£¬ËüÃǶ¼ÊÇÒÔǶÈ뷽ʽ½¨Á¢£¬²¢Ã»ÓÐÕýʽµÄÃû³Æ¡£ÔÚ½¨Á¢Ò»¸öÄäÃûÀàÐÍ£¬Äú±ØÐë×éºÏÉÏÊö¶ÔÏó³õʼ»¯Æ÷ºÍÒþÐ;ֲ¿±äÁ¿Á½¸ö¸ÅÄî¡£ÏÂÃæÊÇÒ»¸öÄäÃûÀàÐ͵ÄÀý×Ó£º

varmyType = new { Length = 79, Width = 30 };

¡¡¡¡ÄäÃûÀàÐ͵ķ¶Î§ÓëÈÎºÎÆäËü±äÁ¿µÄ·¶Î§Ïàͬ¡£ÀýÈ磬ÏÂÃæ´úÂë¿éÖеÄcobraʵÀý½ö½öÔÚSpeedº¯Êý¿éÖÐÓÐЧ£º

private void Speed()
{
¡¡var cobra = new { Horsepower = 550, Torque = 570 };
}

¡¡¡¡Èç¹ûÒ»¸öÄäÃûÀàÐͱ»³õʼ»¯¶øÁíÒ»¸öÄäÃûÀàÐÍλÓÚ·¶Î§ÓòÖУ¬²¢ÇÒËüÃǵÄÇ©ÃûÏàͬ£¬µÚ¶þ¸öÀàÐͽ«×Ô¼ºÕ¼ÓõÚÒ»¸öÀàÐ͵ÄÀàÐÍ¡£ÀýÈ磬ÔÚÏÂÃæÕâ¶Î´úÂëÖУ¬cobraºÍmustang¶¼ÊÇÄäÃûÀàÐÍ£¬²¢ÇÒ¿ÉÒԱ˴ËÉ趨¡£

private void Speed()
{
¡¡var cobra = new { Horsepower = 550, Torque = 570 };
¡¡var mustang = new { Horsepower = 300, Torque = 300 };
¡¡mustang = cobra; //or you could say cobra = mustang
}

¡¡¡¡5 .LINQ

¡¡¡¡ÔÚ֮ǰµÄC#°æÖУ¬¿ª·¢ÕßÓ¦ÓÃÐí¶à²»Í¬µÄ²éѯÓïÑÔÀ´·ÃÎʲ»Í¬µÄÊý¾ÝÔ´¡£ÀýÈ磬Ҫ²éѯһ¸öXMLÎļþ£¬¿ª·¢Õß»áʹÓÃXPath£¬Òª²éѯһ¸öSQLÊý¾Ý¿â£¬¿ª·¢Õß½«Ê¹ÓÃSQL¡£ÔÚ¹ýÈ¥ÕâÖÖ·½·¨Ê®·ÖÓÐЧ£¬²¢ÇÒÏÖÔÚÈÔÈ»ÊÇ·ÃÎʸ÷ÖÖÊý¾ÝµÄÖ÷Òª·½·¨¡£µ«ÊÇ£¬ÕâÖÖ·½·¨¾ßÓÐһЩȱµã¡£ Ò»¸öÏÔÖøµÄȱµãÔÚÓÚ£º¿ª·¢Õß±ØÐëÒÔÒ»ÖÖ²»Í¬µÄÓïÑÔ£¬¶ø·ÇËûÃǵ±Ç°Ê¹ÓõÄÓïÑÔ£¨ÈçSQL»òXPath£©À´±àд²éѯ´úÂë¡£ÁíÒ»¸öȱµãÊÇ£¬ÔÚÖ´ÐÐijЩ²éѯÓïÑÔ£¬ÈçSQLʱ£¬¿ª·¢Õß±ØÐë±àдӳÉä´úÂ뽫²éѯ½á¹ûת»¯Îª¿ÉÓõÄC#ÒµÎñ¶ÔÏó¡£

¡¡¡¡C#3.0ÍÆ³öÒ»ÖÖ³ÆÖ®ÎªÓïÑÔ¼¯³É²éѯ£¨LINQ£©µÄз½·¨¡£Ó¦ÓÃLINQ£¬¿ª·¢Õß¿ÉÒÔ±àд³öÄܹ»ËÑË÷ÈκÎIEnumerable<T>Êý¾ÝÔ´µÄ´úÂë¡£ËùÒÔ³ýÁËÓ¦ÓÃTSQL·ÃÎÊMS SQLÊý¾Ý¿â£¬Ó¦ÓÃXPath·ÃÎÊXMLÎļþÍ⣬ËûÃÇ»¹¿ÉÒÔÓ¦ÓÃLINQ¡£

¡¡¡¡ÏÂÃæµÄ´úÂ루ÁбíC£©ÊÇÒ»¸öLINQ²éѯµÄÀý×Ó£¬Ëü·µ»ØËùÓÐOrderCount´óÓÚ10µÄ¹Ë¿Í£º

¡¡¡¡ÁбíC

using System;
using System.Query;
using System.Collections.Generic;

public class SampleClass
{
¡¡static void Main()
¡¡{
¡¡¡¡List<Customer> customers = GetCustomers();
¡¡¡¡//Write our query to retrieve customers who have more than
¡¡¡¡// 10 orders.
¡¡¡¡IEnumerable<Customer> queryResult = from customer in customers
¡¡¡¡where customer.OrderCount > 10
¡¡¡¡orderbycustomer.ID
¡¡¡¡select customer;
¡¡}
}

¡¡¡¡ÓëSQL»òXPath²»Í¬£¬LINQ²éѯÓÃC#£¬¶ø·ÇµÚÈý·½ÓïÑÔ±àд¡£ÕâÑù£¬²éѯ¾Í²»»á³öÏÖÀàÐÍÎÊÌ⣬¿ª·¢ÕßÒ²¾ÍûÓбØÒª±àдӳÉä´úÂë°Ñ²éѯ·µ»ØµÄÊý¾Ýת»¯³ÉC#¶ÔÏ󣬶øÓÉLINQ API×Ô¶¯´¦ÀíÓ³Éä¡£

¡¡¡¡»ù±¾ÉÏ£¬ÔÚORM½â¾ö·½°¸ÖУ¬LINQ¶ÔÏóÓÃ;ºÜ´ó¡£Í¬Ñù£¬ËüµÄ·¶Î§Ò²·Ç³£¹ã·º£¬ÓдóÁ¿MSDMÐÅÏ¢ÃèÊöÁËËüµÄ¹¦ÄÜ¡£ÓûÁ˽â¸ü¶àÐÅÏ¢£¬Çë·ÃÎÊLINQÖ÷Ò³¡£