c # 4.0
c# 4.0ÐÂÌØÐÔÒ»ÀÀ
ÖÕÓÚ¾²ÏÂÐÄÀ´×ÐϸÌýÁËÒ»±éAnders Hejlsberg£¨Visual Studio×éµÄTECHNICAL FELLOW£¬C#µÄÉè¼ÆÕßÖ®Ò»£©ÔÚPDC08ÉϽ²µÄ“The Future of C#”£¨http://channel9.msdn.com/pdc2008/TL16/£©¡£
»Ø¹ËC#·¢Õ¹µÄÀúÊ·£¬C#1.0ÍêÈ«ÊÇÄ£·ÂJava£¬²¢±£ÁôÁËC/C++µÄÒ»Ð©ÌØÐÔÈçstruct£¬ÐÂѧÕߺÜÈÝÒ×ÉÏÊÖ£»C#2.0¼ÓÈëÁË·ºÐÍ£¬Ò²ÓëJava1.5µÄ·ºÐÍÈç³öÒ»ÕÞ£»C#3.0¼ÓÈëÁËÒ»¶ÑÓï·¨ÌÇ£¬²¢ÔÚûÓÐÐÞ¸ÄCLRµÄÇé¿öÏÂÒýÈëÁËLinq£¬¼òÖ±ÊÇÉñÀ´Ö®±Ê£¬ËäÈ»ºÜ¶àÏîÄ¿³öÓÚ¸÷ÖÖ¸÷ÑùÈçÐÔÄÜÖ®ÀàµÄÔÒòûÓвÉÓ㬵«·Ç³£ÊʺÏСÐͳÌÐòµÄ¿ìËÙ¿ª·¢£¬¼õÇáÁ˳ÌÐòÔ±µÄ¹¤×÷Á¿£¬Ò²Ìá¸ßÁË´úÂëµÄ¿É¶ÁÐÔ£»C#4.0Ôö¼ÓÁ˶¯Ì¬ÓïÑÔµÄÌØÐÔ£¬´ÓÀïÃæ¿ÉÒÔ¿´µ½ºÜ¶àjavascript¡¢pythonÕâЩ¶¯Ì¬ÓïÑÔµÄÓ°×Ó¡£ËäȻԽÀ´Ô½Æ«À뾲̬ÓïÑԵĵÀ·£¬µ«´ÓÁíÒ»¸ö½Ç¶ÈÀ´Ëµ£¬ÕâÐ©ÌØÐÔÒ²¶¼ÊÇΪÁËÌá¸ß³ÌÐòÔ±µÄÉú²úÁ¦¡£ÖÁÓÚ±»½ÓÊÜÓë·ñ£¬»¹ÊÇÈÃʱ¼äÀ´Ëµ»°°É¡£
PS£ºÕâÀïÃæ»¹ÓÐÒ»µã°æ±¾ºÅµÄС²åÇú——VS2008Ëù¶ÔÓ¦µÄ.Net FrameworkÊÇ3.5£¬C#ÊÇ3.0£¬CLRÊÇ2.0£¬¼°Æä»ìÂÒ£¬MSÖÕÓÚϾöÐÄÔÚVS2010ÖаÑÕâÈý¸ö°æ±¾ºÅ¶¼Í³Ò»³ÉÁË4.0£¬ÓÚÊÇCLR3²»ÖªËùÖÕ……
Dynamically Typed Object
C#4.0¼ÓÈëÁËdynamic¹Ø¼ü×Ö£¬¿ÉÒÔÉêÃ÷Ò»¸ö±äÁ¿µÄstaticÀàÐÍΪdynamic£¨ÓеãÈÆ¿Ú£©¡£
ÔÚ3.0¼°Ö®Ç°£¬Èç¹ûÄã²»ÖªµÀÒ»¸ö±äÁ¿µÄÀàÐÍ£¬¶øÒªÈ¥µ÷ÓÃËüµÄÒ»¸ö·½·¨£¬Ò»°ã»áÓõ½·´É䣺
object calc = GetCalculator();
Type calcType = calc.GetType();
object res = calcType.InvokeMember("Add",
BindingFlags.InvokeMethod, null,
new object[] { 10, 20 });
int sum = Convert.ToInt32(res);
ÓÐÁËdynamic£¬¾Í¿ÉÒÔ°ÑÉÏÃæ´úÂë¼ò»¯Îª£º
dynamic calc = GetCalculator();
int sum = calc.Add(10, 20);
ʹÓÃdynamicµÄºÃ´¦ÔÚÓÚ£¬¿ÉÒÔ²»È¥¹ØÐĶÔÏóÊÇÀ´Ô´ÓÚCOM, IronPython, HTML DOM»òÕß·´É䣬ֻҪ֪µÀÓÐʲô·½·¨¿ÉÒÔµ÷ÓþͿÉÒÔÁË£¬Ê£ÏµĹ¤×÷¿ÉÒÔÁô¸øruntime¡£ÏÂÃæÊǵ÷ÓÃIronPythonÀàµÄÀý×Ó£º
ScriptRuntime py = Python.CreateRuntime();
dynamic helloworld = py.UseFile("helloworld.py");
Console.WriteLine("helloworld.py loaded!");
dynamicÒ²¿ÉÒÔÓÃÔÚ±äÁ¿µÄ´«µÝÖУ¬runtime»á×Ô¶¯Ñ¡ÔñÒ»¸ö×îÆ¥ÅäµÄoverload·½·¨¡£
ÕâÀïÓÐÒ»¸ödemo£º°ÑÒ»¶Îjavascript´úÂ뿽µ½C#ÎļþÖУ¬½«var¸Ä³Édynamic£¬function¸Ä³Évoid£¬ÔÙ¸ÄһϹ¹Ô캯ÊýµÄµ÷Ó÷½Ê½£¨new type()¸ÄΪwin.New.type()£©£¬È¥µôjavascriptÖеÄwin.ǰ׺£¨Òò
Ïà¹ØÎĵµ£º
½ñÌìÎÞÊ£¬ÔÚÂÛ̳ÉÏÒ»Ö±¿´Ìù×Ó£¬ºÜÉÙ¶¯ÊÖʵ¼ù£¬½ñÌìÊÔ×ÅдÁËÒ»¸ö¶ÁȡԴ³ÌÐò´úÂëÐÐÊýµÄÀý×Ó£º
ÏÖÔڵĴúÂëÈçÏ£¬¿ÉÄÜ»¹Óв»ÍêÉÆµÄµØ·½£¬ÒÔºóÔٸĽø£º
#include <stdio.h>
#define CHARCOUNT 255
#define CON 6 /*µ¥ÐÐ×¢ÊÍ×îÉÙµÄʱºò*/
int realLength = 0;
/*
* function name: strCount
* function : count ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæÐ¡±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. mallocº¯Êý
mallocº¯ÊýµÄ¹¦ÄÜÊÇÄÚ´æ·ÖÅ亯Êý£¬ÆäÓ÷¨Îª£ºvoid *malloc(unsigned size);³ÌÐòʵÀýÈçÏ£º
#include <stdio.h>
#i ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæÐ¡±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. normvideoº¯Êý
mallocº¯ÊýµÄ¹¦ÄÜÊÇÑ¡ÔñÕý³£ÁÁ¶È×Ö·û£¬ÆäÓ÷¨Îª£ºvoid normvideo(void);³ÌÐòʵÀýÈçÏ£º
#include < ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæÐ¡±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. parsfnmº¯Êý
parsfnmº¯ÊýµÄ¹¦ÄÜÊÇ·ÖÎöÎļþÃû£¬ÆäÓ÷¨Îª£ºchar *parsfnm (char *cmdline, struct fcb *fcbptr, ......
2005-09-12 09:16
×÷ÕߣºËᦻª
³ö´¦£ºÌì¼«Íø
ÔðÈα༣º·½ÖÛ
¡¡¡¡º¯Êýmax¿´ÆðÀ´¼ò½àÃ÷ÁË£¬µ«ÊÇʵ¼ÊÉÏprintfµÄʵÏÖÈ´Ô¶±ÈÕ⸴ÔÓ¡£maxº¯ÊýÖ®ËùÒÔ¿´ÆðÀ´¼òµ¥£¬ÊÇÒòΪ£º
¡¡¡¡(1) maxº¯Êý¿É±ä²ÎÊý±íµÄ³¤¶ÈÊÇÒÑÖªµÄ£¬Í¨¹ýnum²ÎÊý´«È룻
¡¡¡¡(2) maxº¯Êý¿É±ä²ÎÊý±íÖвÎÊýµÄÀàÐÍÊÇÒÑÖªµÄ£¬¶¼ÎªintÐÍ¡£
¡¡¡¡¶øprintfº¯ÊýÔ ......