刚才突然想到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 动物 )
{
((动物) 小生物).移动();
}
}
}
}
}
这个程序的执行结果是:
我属于动物, 我是一只可爱的鸟
这只鸟在自由自在的飞翔
这条鱼在自由自在的游来游去
我属于动物, 我是一匹可爱的马
这匹马在自由自在的奔跑
这只动物在自由自在的移动
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?