让我们用中文编程

**让我们用中文编程

**

刚才突然想到C#里面应该支持中文编程,因为他支持源代码的Unicode,于是用中文写了一个小程序,看看能不能编译执行,结果果然如我所料,可以执行,虽然代码实用价值没有,但是很有趣味。我想用这样的小程序教一个中国学生学面向对象,可能门槛会更低一些,而且也有趣的多,毕竟是母语。(稍作修正,直接用运行时类别鉴定来决定"我是谁")

程序的源代码是:

using System ;

namespace 中文编程
{
public class 生物
{
public virtual void 自我介绍 ()
{
Console . WriteLine ( "我是...咦?我是什么?我也不知道我是什么,反正我是一个" + this . GetType (). Name );
}
}
public class 动物 : 生物
{
protected string 移动方式 ;
protected string 量词 = "只" ;
public 动物 ()
{
移动方式 = "移动" ;
}
public virtual void 移动 ()
{
Console . WriteLine ( "这" + 量词 + this . GetType (). Name + "在自由自在的" + 移动方式 + Environment . NewLine );
}
public override void 自我介绍 ()
{
Console . WriteLine ( "我属于" + this . GetType (). BaseType . Name + ", 我是一" + 量词 + "可爱的" + this . GetType (). Name );
}
}
public class 鸟 : 动物
{
public 鸟 ()
{
移动方式 = "飞翔" ;
}
}
public class 鱼 : 动物
{
public 鱼 ()
{
移动方式 = "游来游去" ;
量词 = "条" ;
}
}
public class 马 : 动物
{
public 马 ()
{
移动方式 = "奔跑" ;
量词 = "匹" ;
}
}
sealed public class 运行
{
[ STAThread ]
static void Main ( string [] args )
{
生物 [] 动物园 = new 生物 [ 5 ];
动物园 [ 0 ] = new 鸟 ();
动物园 [ 1 ] = new 鱼 ();
动物园 [ 2 ] = new 马 ();
动物园 [ 3 ] = new 动物 ();
动物园 [ 4 ] = new 生物 ();
foreach( 生物 小生物 in 动物园 )
{
小生物 . 自我介绍 ();
if( 小生物 is 动物 )
{
(( 动物 ) 小生物 ). 移动 ();
}
}
}
}
}

这个程序的执行结果是:

D:\Project\C#\MyTest\中文编程\bin\Debug>中文编程.exe
我属于动物, 我是一只可爱的鸟
这只鸟在自由自在的飞翔

我属于动物, 我是一条可爱的鱼
这条鱼在自由自在的游来游去

我属于动物, 我是一匹可爱的马
这匹马在自由自在的奔跑

我属于生物, 我是一只可爱的动物
这只动物在自由自在的移动

我是...咦?我是什么?我也不知道我是什么,反正我是一个生物

Published At
Categories with Web编程
Tagged with
comments powered by Disqus