VC.Net、C#.Net语法上很难想到的几点不同处

来源:互联网 发布:win7美化软件 编辑:程序博客网 时间:2024/05/16 09:52

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();


 

原创粉丝点击