VC.Net、C#.Net語法上很難想到的幾點不同處

1:調用基類構造函數:
C#

public subclassname(object arg): base(arg)
{}

C++
h文件
public:
	subclassname(System::Object^ type);
cpp文件
subclassname(System::Object^ type): baseclassname(type){}

2:重寫基類方法:
C#

protected override string baseclassMethod(object value)
{}

C++
h文件

virtual System::String^ baseclassMethod(System::Object^ value) override;

cpp文件
System::String^ namespace::subclassname::baseclassMethod(System::Object^ value)
{}

3:屬性:
C#
public int Count{get{retrun m_Count;}set{m_Count=value;}}

C++
h文件
property virtual int Count
{
    int get(){return this->m_Count;}

    set(int value){this->m_Count=value;}
}

4:數組
C#
ItemType[] items;

C++
array<ItemType>^ items;

5:泛型
C#
public someclass<T>
{}

C++
h文件
generic <class ItemType>
public ref class ItemCollection
{}

6:生成類實例:
C#
someclass sc=new someclass();

C++
someclass^ sc=gcnew someclass();

7:獲取類的類型
C#
typeof(someclass);

C++
someclass::typeid;

8:名稱空間
C#
namespace A.B

	{}

C++
namespace A
{
	namespace B
	{}
}
9摺疊代碼:C##
#region sometext#endregion
C++
#pragma region sometext
#pragma endregion sometext

10:索引
C#
	public int this[int index]

	{

	get{return this.m_Index;}

	set{this.m_Index=value;}

	}

C++
virtual property int default[int]
{
	int get(int index){return this->m_Index;}
	void set(int index, int value){this->m_Index=value;}
}


11:同名不同返回類型的函數(繼承接口)


//直接寫就行了


C++

virtual someTypename^ somemethodname() = basetypename::somemethod
{
	 return this->m_InnerList->GetEnumerator();
}

12:IDispose接口

C#

someInstance.Dispose();

C++

delete someInstance;
someInstance->~SomeInstance()

13:事件註冊

 C#

 someInstance.someEvent += new System.ComponentModel.Design.ComponentChangedEventHandler(this.eventProc);

C++

 service2->ComponentChanged += gcnew System::ComponentModel::Design::ComponentChangedEventHandler(this, &classname::eventProc);


14:泛型默認值

C#

T t=default(T);

C++

T t=T();


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章