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.ǰ׺£¨Òò
Ïà¹ØÎĵµ£º
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæС±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. initgraphº¯Êý
initgraphº¯ÊýÊdzõʼ»¯Í¼ÐÎϵͳ£¬ÆäÓ÷¨Îª£ºvoid far initgraph(int far *graphdriver, int far *graphmode,char far *pathtodriver); ³ÌÐòÀý×ÓÈçÏ£ ......
#ifndef _PPC_BOOT_STRING_H_
#define _PPC_BOOT_STRING_H_
#include <stddef.h>
extern char *strcpy(char *dest, const char *src);
extern char *strncpy(char *dest, const char *src, size_t n);
extern char *strcat(char *dest, const char *src);
extern int strcmp(const char *s1, const cha ......
¡¡¡¡ÉñºõÆä¼¼£¬Î©C³ÌÐò£¬¹¦µ½×Գɣ¬Ê®´ó½¨Ò飡
¡¡¡¡1¡¢ÈêӦƵ·±´ß¶¯lint¹¤¾ß£¬¾ÝÆäÓï·¨ÉùÃ÷ÐÞÏ°ÄÚÁ¦£¬´ËʽÔÒòlint֮˼ÂǾö¶ÏʵԶÔÚ¾ýÉÏ¡£
¡¡¡¡
¡¡¡¡2¡¢²»¿ÉÒÀËæNULLÖ¸Õ룬ÈçÈô²»È»£¬»ìãç³Õµß±ØÙ¹¾ýÓڱ˰¶¡£
¡¡¡¡
¡¡¡¡3¡¢×ÝÓÐÌ츳´óÖǻۣ¬ÖªÏþÆäÊÂÎÞ°£¬ÈêÒ൱¾¡ÊýÇ¿ÖÆŲÒƺ¯Êý²ÎÊýΪÔÐÍËùÆÚÖ®Êý¾ÝÀàÐÍ£¬ÒÔÃâÒ» ......
ÇëÔËÐÐÏÂÃæµÄ´úÂ룬¹Û²ì½á¹û£¬ÓÐÈË˵ÔõôÊÇËÀÑ»·£¬ÄãͬÒâÂð£¿ÎªÊ²Ã´£¿
#include
<stdio.h>
int
main()
{
int
i = 0;
int
name[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæС±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. qsortº¯Êý
qsortº¯ÊýµÄ¹¦ÄÜÊÇʹÓÿìËÙÅÅÐòÀý³Ì½øÐÐÅÅÐò£¬ÆäÓ÷¨Îª£ºvoid qsort(void *base, int nelem, int width, int (*fcmp)());³Ì ......