分享
 
 
 

C++程序员在学习C#时需要注意的一些问题(一)

王朝c#·作者佚名  2006-05-27
窄屏简体版  字體: |||超大  

C++程序员在学习C#时需要注意的一些问题(一)

1)使用接口(interface)

在c#中,使用关键字interface来定义接口;而且,在c#中不能使用多重继承。

interface ICar//接口ICar

{

int Speed//属性Speed

{

get;

set;

}

void Run();//接口方法

void Stop();

}

class MyCar : ICar //继承接口

{

int _speed;

public int Speed

{

get

{

return _speed;

}

set

{

_speed = value;

}

}

public void Run()

{

System.Console.WriteLine("MyCar run, at speed {0}", _speed);

}

public void Stop()

{

System.Console.WriteLine("MyCar stop.");

}

}

2)使用数组

c#中的数组在堆中分配,因此是引用类型。c#支持3中类型的数组:一维数组(single dimensional),多维数组(multi dimensional)和数组的数组(array of array)。

int[] array = new int[10]; // single-dimensional array of int

for (int i = 0; i < array.Length; i++)

array[i] = i;

int[ ,] array2 = new int[5,10]; // 2-dimensional array of int

array2[1,2] = 5;

int[ , , ] array3 = new int[5,10,5]; // 3-dimensional array of int

array3[0,2,4] = 9;

int[][] arrayOfarray = new int[2]; // array of array of int

arrayOfarray[0] = new int[4];

arrayOfarray[0] = new int[] {1,2,15};

3)使用索引(indexer)

索引使得可以像访问数组一样来访问类数据。

class IndexTest

{

private int[] _a;

public IndexTest()

{

_a = new int[10];

}

public int this[int index]

{

get

{

return _a[index];

}

set

{

_a[index] = value;

}

}

}

4)一般参数传递

class PassArg

{

public void byvalue(int x)//By-Value

{

x = 777;

}

public void byref(ref int x)//By-Ref

{

x = 888;

}

public void byout(out int x)//Out

{

x = 999;

}

}

5)传递数组参数

使用params关键字来传递数组参数。

class ArrayPass

{

public void Func(params int[] array)

{

Console.WriteLine("number of elements {0}", array.Length);

}

}

6)is 和 as

obj is class用于检查对象obj是否是属于类class的对象或者convertable。

obj as class用于检查对象obj是否是属于类class的对象或者convertable,如果是则做转换操作,将obj转换为class类型。

class IsAs

{

public void work(object obj)

{

if(obj is MyCar)

{

System.Console.WriteLine("obj is MyCar object");

ICar ic = obj as ICar;

ic.Speed = 999;

ic.Run();

ic.Stop();

}

else

{

System.Console.WriteLine("obj is not MyCar object");

}

}

}

7)foreach

int []arr = new int[10];

foreach(int i in arr)

Console.WriteLine("{0}", i);

8)virtual and override

子类重载父类虚函数,需要使用override关键字。

class BaseClass

{

public virtual void Speak()

{

System.Console.WriteLine("Hello, BaseClass.");

}

}

class Son : BaseClass

{

public override void Speak()

{

System.Console.WriteLine("Hello, Son.");

}

}

class GrandSon : BaseClass

{

public override void Speak()

{

System.Console.WriteLine("Hello, GrandSon.");

}

}

9)使用关键字new隐藏父类的函数实现

class Shape

{

public virtual void Draw()

{

Console.WriteLine("Shape.Draw") ;

}

}

class Rectangle : Shape

{

public new void Draw()

{

Console.WriteLine("Rectangle.Draw");

}

}

class Square : Rectangle

{

public new void Draw()

{

Console.WriteLine("Square.Draw");

}

}

10)调用父类中的函数

使用关键字base来调用父类中的函数。

class Father

{

public void Hello()

{

System.Console.WriteLine("Hello!");

}

}

class Child : Father

{

public new void Hello()

{

base.Hello();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有