郑佐<?xml:namespace prefix = st1 />2005-3-9<?xml:namespace prefix = o />

一年前,有一次在用Access数据库编程的时候,通过VS.NET数据设计器向导生成数据层代码,查看生成的代码,发现有许多中文,原来数据库中的表名和字段名用的就是中文,程序正常运行,查看相关文档才知道原来VS.NET默认的编码是UTF-8。不久前在一篇blog上看到讲易语言,所以干脆用VS.NET写一些中文代码来玩一下,结果就像平常写程序一样没有什么区别。

有点怪怪的味道,故把代码贴出来。

using System;
namespace Zhzuo.ConsoleTest
{
//接口
public interface会飞的东西
     {
void飞行();
     }

 
//抽象类
public abstract class鸟类 : 会飞的东西
     {
//虚方法
public virtual void飞行()
         {
              Console.WriteLine("鸟类飞行!");
         }
//抽象属性
public abstract string名称
         {
get;
set;
         }
//抽象方法
public abstract string获取鸟的名字();
     }
//具体类
public class鹰 : 鸟类
     {
private string变量1;

 
//构造函数
public鹰(string名称)
         {
              变量1 = 名称;
         }

 
public override string名称
         {
get{return变量1;}
set{变量1 = value;}
         }

 
//重写基类方法
public override void飞行()
         {
              Console.WriteLine("鹰在飞行!");
         }

 
public override string获取鸟的名字()
         {
return变量1;
         }
     }

 
//接口
public interface飞机 : 会飞的东西
     {
string类型
         {
get;
         }
string获取名称();
     }

 
//具体类
public class战斗机 : 飞机
     {
public string类型
         {
get{ return飞机类型:战斗机";   }
         }

 
public string获取名称()
         {
return战斗机";
         }

 
public void飞行()
         {
              Console.WriteLine("战斗机飞行");
         }
     }    
public class
     {
         [STAThread]
static void Main(string[] args)
         {             
              鸟类 一只鸟new鹰("灰色的老鹰");
              战斗机 一架飞机new战斗机();

 
              Console.WriteLine(一只鸟.名称);//灰色的老鹰
              一只鸟.名称 = "黑色老鹰";
              Console.WriteLine(一只鸟.名称);//黑色老鹰
              Console.WriteLine(一只鸟.获取鸟的名字());//黑色老鹰
              
              Console.WriteLine(一架飞机.类型);//飞机类型:战斗机
              Console.WriteLine(一架飞机.获取名称());//战斗机

 
              会飞的东西 飞行物 = 一只鸟;
              飞行物.飞行();//鹰在飞行!
              飞行物 = 一架飞机;
              飞行物.飞行();//战斗机飞行
              Console.ReadLine();
         }        
     }    
}

程序运行都在预料之中,一切正常。使用Reflector.exe查看代码如下:

<?xml:namespace prefix = v />


上面是反射成C#,变成VB.net,DELPHI.net或IL生成的代码也都差不多。如果想变态一下那就用中文来写一些程序,这会是什么样的感觉?


 


2005-03-09 21:48  秋枫