·½·¨¶à̬Óë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 ¸üÏñÊÇÖÖÐÒ飬ÌåÏÖ×Å¿ª·ÅÓë×ÔÓÉ——ÎÒÃÇ»¶ÓÄãÀ´²ÎÓ룬ϣÍûÄãÄÜ×ñÊØ±Ë´ËµÄÐÔ¼£»ÈôÄãÎ¥±³»òûÄÜÍê³ÉÖ¸¶¨°²ÅÅ£¬´ú¼Û¾ÍÊÇÔËÐÐʱÒì³£¡£¶ø¾²Ì¬ÀàÐͼì²é¸üÏñÊÇÖÖÔ¼Êø£¬¼ÜÁ˵ÀÃż÷¶ù——Ïë½øÀ´£¿ÏÈ¿´×Ô¼º¹»²»¹»¸ñ¶ù£¡
¿ª·ÅÓë×ÔÓÉ
Ïà¹ØÎĵµ£º
½ñÌìÔÚÍøÉÏÕÒÁËÐí¾Ã¹ØÓÚsqlserverÖд洢imageÀàÐͺͶÁÈ¡imageµÄ·½·¨£¬¿ÉÊǶ¼ÊÇÄÇôһµã£¬¹ÊÔÚ´ËÂÞÁÐһϣ¬Ï£Íû¿ÉÒÔ°ïÖú´ó¼Ò¡£
Ê×ÏÈÊǹØÓÚdataGridViewµÄ°ó¶¨¡£´úÂë¼ûÏÂ
private void button_show_Click(object sender, EventArgs e)
{
string sqlText = "server=localhost;initial catalog=Test; ......
asp.net(c#)ÍøÒ³Ìø×ªÆßÖÖ·½·¨Ð¡½á
·¢²¼Ê±¼ä£º2009-11-25 11:13:03
¡¡¡¡1.Response.Redirect("http://www.yayiba.com",false);
¡¡¡¡Ä¿±êÒ³ÃæºÍÔÒ³Ãæ¿ÉÒÔÔÚ2¸ö·þÎñÆ÷ÉÏ£¬¿ÉÊäÈëÍøÖ·»òÏà¶Ô·¾¶¡£ºóÃæµÄboolֵΪÊÇ·ñÍ£Ö¹Ö´Ðе±Ç°Ò³¡£
Ìø×ªÏòеÄÒ³Ãæ£¬Ô´°¿Ú±»´úÌæ¡£"
ä¯ÀÀÆ÷ÖеÄURLΪз¾¶¡£
:Response.Redirect·½ ......
»¹ÔÚΪ±ÏÒµÉè¼Æ¶ø·³ÄÕô ¿´¿´ÕâÀï ÎÒ°ïÄã¸ã¶¨¾ÍºÃ
±¾ÈËʵ¼Ê¿ª·¢¾Ñé·á¸» ѧ¹ý¸÷Àà³ÌÐò±àд ǰºǫ́¶¼¿ÉÒÔ
ÏÖÔڵŤ×÷²»Ôõô¾°ÆøÑ½ ËùÒÔÕÒµãÍâ¿ìÑø¼Òºý¿Úѽ ºÇºÇ
±¨³êÂï ¹ýµÃÈ¥¾ÍÐÐÁË Ã»Ê²Ã´ÒªÇó ½»¸öÅóÓÑÂï
Èç¹ûÓÐÒâÕß¿ÉÓë±¾ÈËÁªÏµqq604884385 Tel13438309220 ......
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“);
//·½·¨¶þ£ºÓ ......