·½·¨¶à̬ÓëDuck typing£»C#Ö®×¾ÁÓÓëF#Ö®ÓÅÑÅ
ÎÄ / À£¨¹âÓî¹ãÕ꣩
·½·¨¶à̬ÓëÀàÐͶà̬
Á˽â OOP µÄͬѧ¶ÔÀàÐͶà̬¶¼ºÜÊìϤÁË¡£»°Ëµ£¬ÀàÐͶà̬֮¶à̬±ãÌåÏÖÔÚ·½·¨ÉÏ£¬ÄÇ·½·¨¶à̬ÓÖÊÇÂïÍæ¶ù£¿ÀàÐͶà̬֮ÀàÐÍÖ¸µÄÊǶÔÏñµÄÀàÐÍ£¬Æä·½·¨ÊÇÊܶÔÏñÔ¼ÊøµÄ¡£·½·¨¶à̬±ãÊDz»ÊܶÔÏñÀàÐÍÔ¼ÊøµÄ¶à̬¡£¾ßÌåÇø±ðÔÚ£º
·½·¨¶à̬ÎÞÐè¼Ì³Ð£»ÀàÐͶà̬±ØÐëʵÏÖ½Ó¿Ú»òÀà¼Ì³Ð¡£
·½·¨¶à̬²»¹ÜÄãÊÇË£¬Ö»ÔÚºõÄãÄܸÉÂÀàÐͶà̬½²¾¿Äã³ö×ÔºÎÃźÎÅÉ¡£
·½·¨¶à̬µÄ¶ÔÏñ¼æÈÝÐÔÖ»ÐèÆäʵÏÖÔËÐÐÆÚ±»Êµ¼Êµ÷Óõķ½·¨²¿·Ö£»ÀàÐͶà̬µÄ¶ÔÏñ¼æÈÝÐÔÒªÇó A is-a B£¬Ò²¼´²»¹ÜÓõÃ×ÅÓò»×Å£¬Ö»ÒªÄã°ÝÁËʦ¸µ£¬¾ÍµÃÈ«²¿ÊµÏÖ¡£
Duck typing Óë·½·¨¶à̬
Duck typing ÊÇÖÖ¶¯Ì¬ÓïÑԵijÌÐòÉè¼Æ·ç¸ñ£¬ÓÃÒÔʵ¼ù·½·¨¶à̬¡£¸ÅÄîÌá³öÕß James Whitcomb Riley ͬѧÈçÊÇ˵£º
µ±¿´µ½Ò»Ö»Äñ×߯ðÀ´ÏñѼ×Ó£¬ÓÎÆðÓ¾À´ÏñѼ×Ó£¬½ÐÆðÀ´Ò²ÏñѼ×Ó£¬ÄÇÕâÖ»Äñ¾Í¿ÉÒÔ±»µ±×öѼ×Ó¡£
Duck typing ²¢²»¹Ø×¢¶ÔÏñµÄÀàÐÍ£¬¶øÊǹØ×¢Æä±íÏÖ¡£ÎÒÃÇÈÃij¸ö¶ÔÏñÈ¥“×ßÁ½²½¶ù”£¬È¥“ÓÎÁ½Ï”£¬È¥“½ÐÁ½Éù”£»Èô¶ÔÏñÎÞ·¨Íê³ÉÖ¸¶¨¶¯×÷£¬ÔòÅ׳öÔËÐÐʱÒì³£——ËüÊÇÔËÐÐÆÚ¼ì²éµÄ¡£Duck typing ûÓÐÈκξ²Ì¬¼ì²é£¬ÈçÀàÐͼì²é¡¢ÊôÐÔ¼ì²é¡¢·½·¨Ç©Ãû¼ì²éµÈ¡£Guido van Rossum ͬѧÈÏΪ£¬Duck typing µÄ°²È«ÐÔÒÀÀµÁ¼ºÃµÄÎĵµ¡¢ÇåÎúµÄ´úÂëºÍÍ걸µÄ²âÊÔ¡£¾ÙÒ»¸ö Python ÓïÑÔµÄÀý×Ó£º
ͼһ
´úÂëÑÔ¼òÒâêࡣѼ×ÓºÍÈËÁ½ÖÖ¶¯Îï¶¼»á Quack£¬ÓÚÊǾù¿É´«Èë CheckAsDuck ·½·¨´¦Àí¡£CheckAsDuck Ö»¹ÜѾ»á²»»áѼ½Ð£¬²Å²»¹ÜѾÊÇʲô¶«Î÷¡£¶øÕâÖÖ×ö·¨ÔÚ OOP ˼ÏëÀïÊDz»¿ÉÀíÓ÷µÄ¡£
Duck typing Òý·¢µÄÑÏÖØÎÊÌâ
Duck typing ±íÏÖÁ˶¯Ì¬ÓïÑԵijÌÐòÉè¼ÆË¼Ï룬ÆäÓ뾲̬ÓïÑÔÇ¿µ÷µÄÀàÐͼì²é²»Í¬Ö®´¦ÔÚÓÚ£º¶¯Ì¬ÓïÑÔ¼ÙÉèÄã»á×öij¸ö¶¯×÷£¬ÔËÐÐʱ¿ÉÄܻᷢÏÖÄãÆäʵ×ö²»À´£»¾²Ì¬ÓïÑÔ±ØÐëÔËÐÐǰ¾ÍµÃÈ·¶¨ÄãÄÜ·ñ×öµÃÀ´¡£Duck typing ¸üÏñÊÇÖÖÐÒ飬ÌåÏÖ×Å¿ª·ÅÓë×ÔÓÉ——ÎÒÃÇ»¶ÓÄãÀ´²ÎÓ룬ϣÍûÄãÄÜ×ñÊØ±Ë´ËµÄÐÔ¼£»ÈôÄãÎ¥±³»òûÄÜÍê³ÉÖ¸¶¨°²ÅÅ£¬´ú¼Û¾ÍÊÇÔËÐÐʱÒì³£¡£¶ø¾²Ì¬ÀàÐͼì²é¸üÏñÊÇÖÖÔ¼Êø£¬¼ÜÁ˵ÀÃż÷¶ù——Ïë½øÀ´£¿ÏÈ¿´×Ô¼º¹»²»¹»¸ñ¶ù£¡
¿ª·ÅÓë×ÔÓÉ
Ïà¹ØÎĵµ£º
ÏÂÃæÕâ¶ÎC# ´úÂë¿ÉÒÔÓÃÀ´Ñ¹ËõºÍÐÞ¸´AccessÊý¾Ý¿â,²»¹ÜËüÊÇÒ»¸ö¼òµ¥µÄ".mdb"ACCESSÊý¾Ý¿â»¹ÊÇÒ»¸ö".mdw"ÍøÂç¹²ÏíÊý¾Ý¿â,Õâ¸ö¹ý³ÌºÍÄãÔÚÓÃMS AccessÓ¦ÓóÌÐòÖÐʹÓõÄ"¹¤¾ß-Êý¾Ý¿âʵÓù¤¾ß-ѹËõºÍÐÞ¸´"ʱִÐеIJÙ×÷ÍêȫһÑù.ʵÀý´úÂëʹÓÃÁË"³Ù°ó¶¨"(ÔËÐÐÖÐÔÚÄÚ´æÖн¨Á¢COM¶ÔÏó),ÕâÑù¾Í²»ÐèÒªÔÚ¹¤³ÌÖмÓÈëCOMÒýÓÃÁË,Ò²²»ÐèÒªÔÚP ......
ÎÊÌâÃèÊö£º
C#³ÌÐò,ÀïÃæcopyÁËÐí¶àÔÀ´µÄ´úÂë,ËùÒԲβÆëµÄ,ºÜÄѶÁ,ÈçºÎ²ÅÄÜÈôúÂë×Ô¶¯ÅÅÆë,¾ÍÏóVS 6.0ÖпÉÒÔʹÓÿì½Ý¼ü,·Ç³£·½±ã.
½â´ð£º
ctrl+a,ÏÈȫѡ
ctrl+k,ctrl+f,×Ô¶¯ÅÅÁÐ
»òÕß
ctrl+a,ÏÈȫѡ
alt+F8 ×Ô¶¯ÅÅÁÐ ......
xmlpost by HttpWebRequest:
protected string PostXmlToURL(string url,string data)
{
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url);
hwr.Method = "POST";
Stream stream = hwr.GetRequestStream();
StreamWri ......
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.Timers;
using System.Data;
using System.Data.SqlClient;
namespace SMS_joke
{
/// <summary>
/// Global µÄժҪ˵Ã÷¡£
/// </summary>
public class ......
ÓÃÁËADO.NET 2.0 SQLite Data Provider ÕâÑù¿ÉÒÔÖ±½ÓÀûÓÃËüÀ´´´½¨Ò»¸ö¼ÓÃܵÄsqliteÊý¾Ý¿â¡£
ÓйØc#´úÂëÈçÏ£º
1¡¢´´½¨¿ÕµÄsqliteÊý¾Ý¿â¡£
//Êý¾Ý¿âÃûµÄºó׺Äã¿ÉÒÔÖ±½ÓÖ¸¶¨£¬ÉõÖÁûÓкó׺¶¼¿ÉÒÔ
//·½·¨Ò»£º´´½¨Ò»¸ö¿ÕsqliteÊý¾Ý¿â£¬ÓÃIOµÄ·½Ê½
FileStream fs = File.Create(“c:\\test.db“);
//·½·¨¶þ£ºÓ ......