Ò»¡¢¼ò½é
ÃæÏò¶ÔÏó(OO)±à³ÌÔÚÓ¦ÓÃÉè¼ÆÖÐÒѾ·¢Õ¹¶þÊ®À´ÄêÁË¡£³ÌÐò²»ÔÙÊÇһϵÁк¯ÊýµÄ¶Ñ³¹(ÏóһЩ·¶ÀýÄÇÑùµÄ³ÌÐò)£¬¶øÊǶÔÏóµÄ¼¯ºÏ£¬Ã¿¸ö¶ÔÏó¶¼ÓÐÆä¶ÀÌصÄÊôÐԺͷ½·¨À´ÓëÆäËü¶ÔÏó´ò½»µÀ¡£
"C"ÓïÑÔϵÁÐÊÇÃæÏò¶ÔÏóÉè¼Æ·¢Õ¹µÄ×îºÃÀý×Ó¡£C++Ϊ¿ª·¢ÕßÌṩÁËÓÅÐãµÄÃæÏò¶ÔÏó±à³Ì¹¤¾ß£¬³ÌÐòÔ±¿ÉÒÔÏÔʽµØ´´½¨¹¹Ô캯Êý£¬¿½±´¹¹Ô캯Êý£¬ÖØÔزÙ×÷·û£¬Ê¹ÓÃÄ£°åµÈµÈ¡£
ÏóC++ÕâÑù¸´ÔÓÓïÑÔµÄÖ÷ÒªÎÊÌâÊdzÌÐòÔ±Òª»¨ÉϺü¸¸öÔÂÀ´ÕÆÎÕÃæÏò¶ÔÏóÉè¼Æ±¾ÖÊ¡£Ð³ÌÐòÔ±±ØÐëѧ»áÕÆÎÕÄ£°å£¬º¯ÊýÖØÔØ£¬µ±È»»¹Òª»á´´½¨ºÍʹÓù¦ÄÜÁ¼ºÃµÄÀà¡£
΢Èí¹«Ë¾¸øC#(¶ÁΪC-Sharp)¸³ÓèC++ijЩÃæÏò¶ÔÏóµÄ±¾ÖÊ£¬±ÈÈçÄ£°å£¬µ«¸Ä±äÁËÀàµÄ´´½¨·½·¨¡£±¾ÎÄ£¬ÎÒ½«¶Ô±ÈC++ºÍC#µÄÀ࣬²¢×ÅÖØ˵Ã÷΢ÈíÔÚC#ÖÐÀà´´½¨ºÍʹÓ÷½ÃæµÄ¸Ä±ä¡£
±¾ÎĶÔÏóÊÇÊìÁ·µÄC++³ÌÐòÔ±£¬Í¨¹ýһЩϸ½ÚÀ´½âÊÍC#ÃæÏò¶ÔÏóµÄ±¾ÖÊ¡£
¶þ¡¢C#µÄÀàÓÐÁËÄÄЩ¸Ä±ä£¿
ÈçÄãËùÖª£¬C#ÊDz¿·Ö»ùÓÚC++£¬²¿·Ö»ùÓÚJavaÓï·¨µÄÓïÑÔ¡£C#Öл¹ÓÐһЩϸ½ÚÉϵĸı䣬ʹµÃËü¿ÉÒÔÓÃÓÚÏÖ´úÉè¼Æ¡£µ±Ä㿪ʼÓÃC#½¨Ààʱ¾Í»áÁ¢¼´¿´µ½Õâµã¡£ÈÃÎÒÃÇͨ¹ýÒ»¸ö¼òµ¥µÄÀý×Ó¿ªÊ¼Á˽âÔÚC++ºÍC#ÖÐÊÇÈçºÎ½¨Àಢ½øÐÐʵÀý»¯µÄ¡£
C++°æ±¾£º
#include
class MyClass
{
¡¡public: void doSomething()
¡¡{ std::cout << "This is some text";
¡¡}
};
void main()
{ MyClass mc;
¡¡mc.doSomething();
}
C# °æ±¾£º
using System;
class MyClass
{
public void doSomething()
{
Console.WriteLine("This is some text");
}
}
class EntryPoint
{ public static void Main()
{ MyClass mc = new MyClass();
mc.doSomething();
}
}
ÉÏÃæµÄ´úÂëÖÐÓм¸¸ö²»Í¬Ö®´¦¡£
Ê×ÏÈ£¬C++ÓÃ#include°üº¬Óï¾äÀ´Ö¸Ã÷°üº¬Îļþiostream.hµÄÎïÀí·¾¶¡£C#Ôò¸æËß±àÒëÆ÷³ÌÐò½«ÔÚSystemÃüÃû¿Õ¼äϲÙ×÷£¬ËùÓеÄÃüÃû¿Õ¼äºÍÀ඼ÊôÓÚSystemÃüÃû¿Õ¼ä¡£C#ͨ¹ýÃüÃû¿Õ¼äµÄÃû×ÖÀ´¾ö¶¨³ÌÐòµÄ×÷Ó÷¶Î§(±¾ÀýÖÐÖ»ÓÐSystemÒ»¸öÃüÃû¿Õ¼ä)£¬¶ø²»ÓÃÖ¸Ã÷ÎïÀí·¾¶µÄ°üº¬Îļþ·½·¨¡£
Æä´Î£¬C#µÄÖ÷³ÌÐòÓÃMain(×¢ÒâMÊÇ´óд)¡£
µÚÈý£¬C++µÄÀàÉùÃ÷½áÊøºóÒªÔÚ×îºóµÄ´óÀ¨ºÅºóÃæÓ÷ֺŽáβ¡£C#Ôò¿ÉÓÿɲ»Óã¬ÍùÍù¶¼ÊÇÊ¡ÂÔ¡£
µÚËÄ£¬ÄãÄÜ¿´µ½ÔÚC#ÖбØÐëÏÔʽµØÉùÃ÷·½·¨ºÍ³ÉÔ±µÄ×÷ÓÃÓò¡£Èô²»¼ÓÉùÃ÷£¬È±Ê¡ÎªË½ÓÐ(Ö»ÓÐÀà³ÉÔ±¿ÉÒÔ·ÃÎÊ)£¬ÕâµãÓëC++Ò»Ñù¡£C#ÖÐÓÐ5ÖÖ×÷ÓÃÓò£º
¡¡¹«ÓÐ(public)£ºÆäËûÀà³ÉÔ±Ò²¿ÉÒÔ·ÃÎÊ
¡¡Ë½ÓÐ(private)£ºÖ»ÓÐÀà³ÉÔ±²ÅÄÜ·ÃÎÊ
¡¡±£»¤(protected)£ºÀà³ÉÔ±ºÍ¼Ì³ÐÀà³ÉÔ±¿ÉÒÔ·ÃÎÊ
¡¡ÄÚ²¿(internal)£ºÖ»Óлã±ÀàïµÄ³ÉÔ±²ÅÄÜ·ÃÎÊ(C#µÄ»ã±àÊÇ´úÂëºÍ×ÊÔ´Êý¾ÝµÄ½áºÏ£¬ÒÔasmx×÷Îļþºó׺)
¡¡ÄÚ²¿±£»¤(protected internal)£ºÀà³ÉÔ±ºÍ¼Ì³ÐÀà³ÉÔ±¿ÉÒÔ·ÃÎÊ
×îºó£¬ÓëJavaÒ»Ñù£¬C#µÄ·½·¨Ò²¿ÉÒÔÉùÃ÷Ϊ¾²Ì¬(static)µÄ¡£¾²Ì¬±äÁ¿µÄʹÓÃÔÚC#ºÍC++ÊÇÒ»ÑùµÄ¡£ÔÚC#À¿ÉÒÔÕâÑù´´½¨²¢µ÷ÓÃÀàµÄ¾²Ì¬·½·¨£º
using System;
class MyClass
{ public static void doSomething()
¡¡{Console.WriteLine("This is some text");
¡¡}
};
class EntryPoint
{
¡¡public static void Main()
¡¡{
¡¡¡¡MyClass.doSomething();
¡¡} }
×¢Ò⣬ÕâÀïÖ±½ÓʹÓÃÀàÉùÃ÷¶øûÓд´½¨ÀàµÄʵÀý¡£ÕâÊÇΪC#ÓïÑÔÔö¼ÓµÄ·Ç³£±ãÀûµÄʹÓ÷½·¨£¬¿ÉÒÔ½ÚÊ¡ÎÒÃǵÄʱ¼äºÍÄÚ´æ¡£¾ÍÊÇ˵£¬²»Òª´´½¨ÀàʵÀý£¬¿ÉÒÔÖ±½Óµ÷ÓÃÀàµÄ·½·¨¡£
Èý¡¢ÓÃÀàÐÞÊÎÓïÏÞÖƶÔÀàµÄ·ÃÎÊ
ÒÔÇ°Ö»ÄܶÔÀà³ÉÔ±ºÍÀà·½·¨É趨ÏÞÖÆ£¬µ«²»ÄܶÔÀàʵÌå×÷ÏÞÖÆ¡£C#¿ÉÒÔͨ¹ýÉùÃ÷ÀàÐÞÊÎÓïÀ´¶ÔÀàµÄʵÀýʵÐÐÏÞÖÆ£¬ÈçÉϽÚÌáµ½µÄ×÷ÓÃÓò¡£
C++²»ÄܶÔÕû¸öÀà×÷ÏÞÖÆ¡£¿´Ò»ÏÂC++µÄÀàÉùÃ÷£º
class Car
{
¡¡public:
¡¡¡¡Car();
¡¡¡¡Car(Car &c);
¡¡¡¡virtual ~Car();
¡¡private:
¡¡¡¡int numCars;
¡¡¡¡Car* previous;
¡¡¡¡Car* next;
};
ÕâÀïÓжþÖÖ·ÃÎÊÀàÐÍ£º¹«ÓÐ(public)ºÍ˽ÓÐ(private)¡£¼Ì³Ð»ò½«ÀàCarʵÀý»¯ºó£¬³ÌÐòÖ»Äܼ̳ÐÕâЩ´úÂ룬²»ÄÜ×÷ÆäËü±ä¶¯£¬Èç¹ûÒª×÷ÆäËü±ä¶¯¾Í²»Äܽ«Æä×÷Ϊ»ùÀà¡£
C#¶Ô´ËÁ˸ı䡣¿ÉÒÔ¸½¼Ó·ÃÎÊÐÞÊÎÓïÀ´ÏÞÖÆÀà³ÉÔ±ºÍ·½·¨ÒÔ¼°ÀàʵÀýµÄ·ÃÎÊȨ¡£C#É趨8¸ö·ÃÎÊȨÏÞ£º
¡¡¹«ÓÐ(public)£º¿ÉÒÔ±»ËùÓÐÆäËüµÄÀà·ÃÎÊ¡£Ã»ÓÐÆäËüÏÞÖÆÐÞÊÎÓËüµÄ¹«ÓÐÐÔÖʾÍÒ»Ö±ÊÇȱʡµÄ¡£
¡¡Ë½ÓÐ(private)£ºÖ»ÓÐÀà³ÉÔ±²ÅÄÜ·ÃÎÊ¡£
¡¡±£»¤(protected)£ºÀà³ÉÔ±ºÍ¼Ì³ÐÀà³ÉÔ±¿ÉÒÔ·ÃÎÊ¡£
¡¡ÄÚ²¿(internal)£ºÖ»Óлã±ÀàïµÄ³ÉÔ±²ÅÄÜ·ÃÎÊ(C#µÄ»ã±àÊÇ´úÂëºÍ×ÊÔ´Êý¾ÝµÄ½áºÏ£¬ÒÔasmx×÷Îļþºó׺)¡£
¡¡ÄÚ²¿±£»¤(protected internal)£ºÀà³ÉÔ±ºÍ¼Ì³ÐÀà³ÉÔ±¿ÉÒÔ·ÃÎÊ¡£
¡¡ÃÜ·â(sealed)£ºËùÓм̳ÐÀ඼²»ÄÜ·ÃÎÊ¡£ÎÞÂÛÖ±½Ó»ò¼ä½ÓµØ½«Ëü×÷Ϊ»ùÀ࣬C#±àÒëÆ÷¶¼»áÌø´í¡£
¡¡³éÏó(abstract)£ºÓëC++µÄÐé(virtual)Àà»òÐé·½·¨ÏàËÆ£¬³éÏóÀ಻ÄÜÖ±½ÓʵÀý»¯£¬³éÏóº¯Êýº¬Óк¯ÊýÃû¡£µ«ÔÚ×÷Ϊ»ùÀà»ò¼Ì³ÐÀàʱ¿ÉÒÔʹÓá£
¡¡Ð½¨(new)£ºÓÃnew´´½¨Ç¶Ì×À࣬¿ÉÒÔÒþ²Ø¼Ì³Ð·½Ê½£¬¸æËß±àÒëÆ÷´´½¨Ò»¸öÀàµÄа汾¡£
¡¡
¾ÙÀýÀ´Ëµ£¬Èç¹ûÒª´´½¨Ò»¸öÀ࣬²¢ÇÒÕâ¸öÀ಻Äܱ»×÷Ϊ»ùÀà»ò¼Ì³Ð£¬ÄÇô¾ÍÒª´´½¨Ò»¸öÃÜ·âÀࣺ
sealed class Car
{
¡¡public void paintCar()
¡¡{
¡¡¡¡// Code to paint car goes here
¡¡}
}
ÕâʱÈç¹ûÒª´´½¨Ò»¸ö¼Ì³ÐÀàRedCar£º
internal class RedCar : Car
{
¡¡// Won't work.
}
C#±àÒëÆ÷¾Í»áÌø´í£º
error CS0509: 'RedCar' : cannot inherit from sealed class 'Car' (²»ÄÜ´ÓÃÜ·âÀà'Car'¼Ì³Ð)¡£
#p#ËÄ¡¢C++ºÍC#ÖеÄÐ麯Êý
C++ºÍC#¶¼Ö§³ÖÐ麯Êý¡£ÔÚÏÂÃæµÄC++Àý×ÓÀÓжþ¸öÀ࣬·Ö±ð³ÆΪBase(»ùÀà)ºÍDerived(¼Ì³ÐÀà)£º
#include
using namespace std;
class Base
{
¡¡public:
¡¡¡¡void doWork()
¡¡¡¡{
¡¡¡¡¡¡cout << "Base class working";
¡¡¡¡}
¡¡protected:
¡¡¡¡virtual void doWork1() = 0;
};
class Derived : public Base
{
¡¡public:
¡¡¡¡void doWork2()
¡¡¡¡{
¡¡¡¡¡¡cout << "Derived class working";
¡¡¡¡}
¡¡¡¡void doWork1()
¡¡¡¡{
¡¡¡¡¡¡cout << "Dervied pure virtual function working";
¡¡¡¡}
};
void main()
{
¡¡Derived d;
¡¡d.doWork1();
}
»ùÀàÀïÓжþ¸öº¯Êý£¬Ò»¸öÊÇdoWork£¬ÁíÒ»¸öÊÇ´¿Ð麯ÊýdoWork1¡£doWork1Ö»Äܱ»»ùÀàµÄ¼Ì³ÐÀàʹÓá£Ôڼ̳ÐÀà(¹«Óеؼ̳ÐÓÚ»ùÀà)ÀïÓÐÒ»¸öк¯ÊýdoWork2£¬ºÍ¼Ì³ÐÓÚ»ùÀà´¿Ð麯ÊýµÄ³¬Ô½º¯ÊýdoWork1¡£
ÔÚC#ÀïʵÏÖͬÑùµÄ¹¦ÄÜÒª¸üÈÝÒ×Щ¡£¿´ÏÂÃæµÄC#´úÂ룺
using System;
abstract class Base
{ ¡¡public void doWork()
¡¡{ Console.WriteLine("Base class working");
¡¡}
¡¡public abstract void doWork1();
}
class Derived : Base
{ public void doWork2()
¡¡{ Console.WriteLine("Derived class working");
¡¡}
¡¡public override void doWork1()
¡¡{ Console.WriteLine("Dervied pure virtual function working");
¡¡}
};
class EntryPoint
{
¡¡public static void Main()
¡¡{
¡¡¡¡Derived d = new Derived();
¡¡¡¡d.doWork1();
¡¡}
}
C#½«»ùÀඨÒåΪ³éÏóÀ࣬½«doWork1¶¨ÒåΪ³éÏó·½·¨¡£ÕâÑù¾Í¿ÉÒÔ»ñµÃÓëÉÏÊöC++´¿Ð麯ÊýͬÑùµÄ¹¦ÄÜ¡£BaseÀàÖ»ÄÜ×÷Ϊ»ùÀà»ò±»º¬ÓÐdoWork1³¬Ô½º¯ÊýµÄ¼Ì³ÐÀàʹÓá£
¼Ì³ÐÀàÔÚ³¬Ô½³éÏóº¯ÊýdoWork1ʱ£¬ÔÚº¯ÊýÇ°Ãæ¼ÓÉϳ¬Ô½Ç°×º(override)¡£C#±àÒëÆ÷ÔÚ·¢Ïּ̳ÐÀàÀïµÄoverride¹Ø¼ü×ֺ󣬾ͼì²é»ùÀàµÄͬÃûº¯Êý¡£Ö»Òª²»ÊÇÖ±½ÓÏÔʽµØµ÷ÓûùÀຯÊý£¬±àÒëÆ÷×ÜÊÇʹÓü̳ÐÀàÖеķ½·¨¡£
ΪÁËÈü̳ÐÀàÖ±½Ó²Ù×÷»ùÀà³ÉÔ±ºÍ·½·¨£¬C# Ϊ»ùÀàÃüÃûÁËÒ»¸ö±ðÃûbase¡£ÓÃÕâ¸ö±ðÃû£¬¼Ì³ÐÀà¿ÉÒÔÖ±½ÓÒýÓûùÀà³ÉÔ±ºÍ·½·¨¡£Ê¾ÀýÈçÏ£º
using System;
class first {
¡¡public void writeIt()
¡¡{ Console.WriteLine("Writing from base class");
¡¡}
}
class second : first
{
¡¡public second()
¡¡{
¡¡¡¡base.writeIt();
¡¡}
}
class EntryPoint
{
¡¡public static void Main()
¡¡{ second s = new second();
¡¡}
}
ÔÚÉÏÊöÀý×ÓÖУ¬Óжþ¸öÀà¡£Ò»¸öÊÇ»ùÀà(first)£¬ÁíÒ»¸öÊǼ̳ÐÀà(second)¡£µ±´´½¨secondÀàµÄʵÀýʱ£¬ËüµÄ¹¹Ô캯Êý×Ô¶¯µ÷ÓûùÀàµÄwriteIt·½·¨£¬ÓÿØÖÆָ̨ÁîConsole.WriteLine´òÓ¡ÆÁÄ»¡£ÓÉ´ËÒý³öC++ºÍC#ÖеĶà̬ÐÔ¡£
Îå¡¢C++ºÍC#ÖеĶà̬ÐÔʵÌåµÄ¶à̬ÐÔʹÆä¾ßÓжàÖÖ±íÏÖÐÎʽ¡£ÔÚC++ºÍC#Öд¦Àí¶à̬ÐÔÊǺÜÏàÏñµÄ¡£¿´Ò»¸ö¼òµ¥Àý×Ó£º
C++ °æ±¾£º
#include
#include
using namespace std;
class Person
{
¡¡public:
¡¡¡¡Person()
¡¡¡¡{
¡¡¡¡¡¡classType = "Person";
¡¡¡¡}
¡¡friend void ShowType(Person& p);
¡¡private:
¡¡¡¡string classType;
};
class Manager : public Person
{ public:
¡¡¡¡Manager()
¡¡¡¡{classType = "Manager";
¡¡¡¡}
¡¡friend void ShowType(Person& p);
¡¡private:
¡¡¡¡string classType;
};
void ShowType(Person& p)
{ ¡¡cout << p.classType << endl;
} void main()
{ Person p;
¡¡Manager m;
¡¡ShowType(p);
¡¡ShowType(m); }
C# °æ±¾£º
using System;
class Person {
¡¡public Person()
¡¡{ classType = "Person";
¡¡}
¡¡public string classType;
}
class Manager : Person
{ public Manager()
¡¡{
¡¡¡¡classType = "Manager";
¡¡}
¡¡public new string classType;
}
class EntryPoint
{ public static void ShowType(ref Person p)
¡¡{ Console.WriteLine(p.classType);
¡¡}
¡¡public static void Main()
¡¡{
¡¡¡¡Person p = new Person();
¡¡¡¡Person m = new Manager();
¡¡ShowType(ref p);
¡¡¡¡ShowType(ref m);
¡¡}
}
ÔÚÉÏÃæµÄÀý×ÓÀÓÐÒ»¸ö»ùÀàPerson£¬Ò»¸ö¼Ì³ÐÓÚ»ùÀàµÄManagerÀà¡£ÔÚEntryPointÀàÀ´´½¨ÁËÒ»¸ö¾²Ì¬º¯ÊýShowType£¬Æä±í´ïΪ£º
public static void ShowType(ref Person p)
×¢Òâ²ÎÊýÀïµÄref¹Ø¼ü×Ö¡£ref¸æËßC#±àÒëÆ÷ÏòShowTypeº¯Êý´«µÝÒ»¸ö²ÎÊýµÄÒýÓÃ(reference)¡£ÔÚC#ÖУ¬Èç¹û²»ÓÃref¹Ø¼ü×Ö£¬º¯ÊýµÄ²ÎÊý´«µÝȱʡΪֵ(value)´«µÝ£¬½«¿½±´Ò»¸ö²ÎÊýÖµ´«µÝµ½º¯ÊýÖÐÈ¥¡£
ÔÚC++ÖеIJÎÊýÒýÓô«µÝ±í´ïΪ£º void ShowType(Person& p)
C++ÓÃ"&"·ûºÅ±íʾ²ÎÊýÒýÓÃʹµÃ³ÌÐòÔ±ÐÂÊָе½À§»ó£¬ÓÈÆäÊÇÄÇЩ´ÓVBת¹ýÀ´µÄÈË¡£
ÔÚC#µÄÖ÷º¯Êý(entry point)À´´½¨Á˶þ¸öеÄPerson¶ÔÏó£¬pºÍm£º
Person p = new Person();
Person m = new Manager();
ÖµµÃÒ»ÌáÊÇ£¬¹Ø¼ü×ÖnewÔÚC#ºÍC++ÖÐÓ÷¨ÊDz»Ò»ÑùµÄ¡£ÔÚC#ÀnewÖ»´´½¨Ò»¸ö¶ÔÏóʵÀý¡£Õâ¸ö¶ÔÏóÒÀÈ»´´½¨ÔÚ¹ÜÀí¶ÑÀµ«²»·µ»ØÖ¸Ïò¶ÔÏóµÄÄÚ´æµØÖ·µÄÖ¸Õë¡£ÔÚÉÏÃæµÄC#Àý×ÓÖУ¬´´½¨Á˶þ¸öPersonÀà¶ÔÏó¡£µÚ¶þ¸ö¶ÔÏó£¬m£¬È´ÊÇManagerÀàµÄ¶ÔÏó¡£ËüʹÓÃManagerµÄ¹¹Ô캯Êý¶ø²»ÊÇÓÃPersonµÄ¹¹Ô캯Êý¡£
½«PersonÀà¶ÔÏóºÍManagerÀà¶ÔÏóÒýÓõ½ShowTypeº¯Êý£¬¼Çס£¬ManagerÊÇPersonµÄ¼Ì³ÐÀ࣬µ«C#µÄ¶à̬ÐÔ½«Æä±í´ïΪһ¸öPersonÀࣺ
ShowType(ref p);
ShowType(ref m);
µ±×÷Óõ½ShowTypeº¯Êýʱ£¬ËüÖ»´¦ÀíPerson¶ÔÏó¡£C#¸æËßËü˵mÊÇPerson¼Ì³ÐÀàµÄ¶ÔÏó£¬Ëü¾Í½«m°´PersonÀà´¦ÀíÁË¡£ËùÒÔÓÃpºÍm×÷²ÎÊýµ÷ÓÃShowTypeº¯ÊýºóµÃµ½µÄÊä³öΪ£º
Person
Person
[ÒëÕß×¢£ºÕâÑù½âÊͶà̬ÐÔÓеãÀëÆס£Õâ¶Î C#´úÂëµÄÕæÕýº¬ÒåÔÚÓÚÚ¹Ê;²Ì¬º¯ÊýµÄ×÷Ó㬶ø²»ÊÇʲô¶à̬ÐÔ¡£ÉÏÃæÒ»¶ÎC++´úÂëÔò¿ÉÒÔ¿´³É¶à̬ÐÔÓ÷¨µÄ½âÊÍ¡£]
Áù¡¢½áÂÛ
ÔÚÎÒÊìϤC#֮ǰ£¬ÎÒÓÃÁË4ÄêVBºÍ2ÄêC++¡£ÎÒ¿ÉÒÔ¸ºÔðµØ˵£¬C#ÊÇÎÒÓùýµÄÓïÑÔÖÐ×î¾ß»îÁ¦ºÍÁé»îÐÔ²¢Ê¹ÈËÓä¿ìµÄÓïÑÔ£¬¶øÇÒËüÊÇ100%ÃæÏò¶ÔÏóµÄ¡£Èç¹ûÄãÊÇÒ»¸öC++³ÌÐòÔ±£¬ÏÖÔÚÏëתÏòµç×ÓÉÌÎñ±à³Ì»ò¸É´à¾ÍÊÇÏë»»Ò»ÖÖ¸üÏÖ´úµÄÓïÑÔ£¬ÄÇô¾ÍÊÇC#ÁË¡£ÓÐÕâôÈýÖÖÔÒò£º
Èç¹û»áʹÓÃC#£¬Äã¾ÍÄÜ´´½¨ÈκÎÓ¦ÓãºWindowsÓ¦Ó㬿ØÖÆ̨ӦÓã¬WebÓ¦ÓúÍWeb·þÎñµÈµÈ¡£
ËùÓеÄ.NETƽ̨ʹÓõÄÓïÑÔ¶¼±àÒë³ÉΪÖмäÓïÑÔ(IL)£¬²¢ÄÜ°´ÕÕϵͳ»·¾³½øÐÐÓÅ»¯¡£
·Ç³£·Ç³£ÈÝÒ×½«C++ת»»³ÉC#¡£