看到一个暴强的翻译,闲的蛋疼,写个c#版的

在豆瓣上看到一篇关于拿破仑的翻译,文科生的翻译有几段相当传神,不得不佩服汉语的强大。有好事者还用程序语言实现了一下,现已有java、python和html的版本,我也来写个渺小的C#版本,运行结果和java版是一致的,但是本文的这个稍作抽象(java版的我不觉得有多好,甚至应该说写得真烂),更符合C#程序员的阅读习惯。贴代码先:
【渺小滴C#版(知道运行结果又如何)】

using System;
using System.Collections.Generic;

public abstract class Person
{
    
/// <summary>
    
/// name
    
/// </summary>
    public string Name { getset; }

    
/// <summary>
    
/// Chrysanthemum Damage Per Second
    
/// </summary>
    public int CDPM { getset; }
}

public class Enemy : Person
{

    
public Enemy(string name, int cdpm)
    {
        
this.Name = name;
        
this.CDPM = cdpm;
    }

    
public void Shout()
    {
        
if (this.CDPM > 0)
        {
            Console.WriteLine(
string.Format("{0} says: we are invincible!!!"this.Name));
        }
        
else
        {
            Console.WriteLine(
string.Format("{0} says: ......"this.Name));
        }
    }

    
public bool IsCanBeatNapoleon(Napoleon n)
    {
        
if (n == null)
        {
            
throw new ArgumentNullException("Napoleon was not initialized...");
        }
        
return this.CDPM > n.CDPM;
    }
}

public class Napoleon : Person
{
    
private IList<Enemy> enemies = new List<Enemy>();

    
private Napoleon()
    {
        
this.Name = "Napoleon";
        
this.CDPM = 100000;
        enemies.Add(
new Enemy("Italy"100));
        enemies.Add(
new Enemy("Egypt"100));
        enemies.Add(
new Enemy("Russia "100));
    }

    
private void Speak()
    {
        Console.WriteLine(
"My enemy number: " + enemies.Count);
        IList
<Enemy> trueEnemies = new List<Enemy>();
        
foreach (Enemy item in enemies)
        {
            
if (item.CDPM > CDPM)
            {
                trueEnemies.Add(item);
            }
        }

        Console.WriteLine(
"The number of enemies who can beat me: " + trueEnemies.Count);

        
foreach (Enemy item in enemies)
        {
            
do
            {
                item.Shout();
            }
            
while (item.IsCanBeatNapoleon(this));
        }
        Console.WriteLine(
"I am {0},my cdpm is {1}"this.Name, this.CDPM);
        Console.WriteLine(
"Dispose enemy list...");
        enemies.Clear();
        Console.WriteLine(
"Enemy list disposed!");
    }


    
static void Main(string[] args)
    {
        (
new Napoleon()).Speak();
        Console.Read();
    }
}

最后,弱弱问一下,我怎么觉得程序实现的都和翻译无关呢? 比文科的翻译逊色不是一点点。

转载于:https://www.cnblogs.com/jeffwongishandsome/archive/2010/10/11/1848228.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

太多的想法,反而不是什么好兆头

太多的想法&#xff0c;反而不是什么好兆头&#xff0c;思绪太多&#xff0c;反而影响专心做另外一件事情&#xff01;转载于:https://blog.51cto.com/newsnews/1113359

电销会员分销

AI(人工智能)机器人:真人语音智能流畅对话&#xff0c;支持打断&#xff0c;自动录音。自动按意向分A B C D 类。代替电销人员打电话&#xff0c;减少80%的重复劳动!低成本,高效率。 web部分&#xff0c;对接机器人&#xff0c;机器人智能语言交互。对一些做电销的企业来讲节省…

raft协议中统计一条log被多少节点复制

在raft协议中&#xff0c;client的请求都会转化为一条log&#xff0c;并且只能由leader才能处理来自client的请求&#xff0c;如果一个log请求到了follower上&#xff0c;最后也会重定向到leader上的。 好的&#xff0c;废话说多了&#xff0c;开始主题&#xff1a;raft协议中…

[笔记][原创]Verilog HDL语法分析笔记

这篇帖子用于记录学习Verilog过程中的一些syntax的问题&#xff0c;会不断更新&#xff0c;有不正确的地方请各位帮忙指正:D一.Verilog 语法中的可综合性Verilog HDL 真的很强大&#xff0c;如果程序只用于仿真&#xff0c;那么几乎所有的语法和编程语句都可以使用。但如果程序…

SRV记录注册不成功的可能的原因

1.1.1 SRV记录注册不成功的可能的原因 默认情况&#xff0c;安装完活动目录就会DNS中的SRV记录就注册成功了&#xff0c;如果您在域控制器上重启Netlogon服务&#xff0c;有可能还是不能注册SRV记录到DNS服务器上&#xff0c;以下是总结的需要检查的几点。 DNS区域名字是否正确…

cast()函数

cast()函数用于将某种数据类型的表达式显式转换为另一种数据类型。 CAST()函数的参数是一个表达式&#xff0c;它包括用as关键字分隔的源值和目标数据类型。 语法&#xff1a;CAST (expression AS data_type) expression&#xff1a;任何有效的SQL Server表达式。 AS&#x…

组建内存双通道的条件

双通道要分以下两种情况&#xff1a; 1.对称双通道&#xff1a;这是最传统的双通道模式&#xff0c;需要尽量完全相同的成对内存组建&#xff0c;性能为双通道中最强&#xff0c;要求也最苛刻&#xff0c;即使不能保证内存完全相同也至少应该保证容量、速度、延时、版型相同&am…

ABAP很厉害是怎么一种体验?

知乎上偶然看到这个问题&#xff0c;觉得很有意思&#xff0c;我也来回答一发。 我本科和研究生学的是计算机专业&#xff0c;做项目用C/C&#xff0c;研究生三年项目的代码量大概在三到四万行左右。2007年大学毕业加入SAP成都研究院一直工作到现在&#xff0c;工作中用的最熟练…

vector内存扩容

vector底层实现的机制是一个动态数组&#xff0c;当其占用的内存不足时&#xff0c;就会自动分配时原来内存大小2倍的空间&#xff0c;并将原来内存中的数据拷贝到新开辟的内存中。vector扩容时&#xff0c;并不是在原有内存的基础上再分配一块内存&#xff0c;而是在其他的地方…

C语言:为什么用fprintf(stderr,Error);比printf(Error);更好?

C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?_百度知道C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?2009-05-27 17:03 提问者&#xff1a; Wave_Dan |浏览次数&#xff1a;2855次请问:当文件…

w3m 使用总结

安装 sudo apt install w3m终端 w3m www.baidu.com 即可打开w3m是个开放源代码的命令行下面的网页浏览器。一般的linux系统都会自带这个工具&#xff0c;可以通过它在命令行下面浏览网页。本文介绍这个工具的使用方法。 [功能] w3m是个开放源代码的命令行下面的网页浏览器。 它…

set_error_handler自定义错误处理

刚看到了App.class.php&#xff0c;里面有个自定义错误的函数appError 刚还在怀疑。咋这么多参数&#xff0c;虽然看起来都是有用的&#xff0c;不过有些头晕。 继续往下看&#xff0c;看到了init()里的第一句话set_error_handler(array(&$this,”appError”)); 于是好好搜…

vector查找、插入、删除时效率对比

vector底层实现的机制时动态数组&#xff0c;因此适用于查找比较频繁的场景。那么在vector的中push_back()一个元素时或者在尾部删除一个元素时&#xff0c;效率是不是就高&#xff1f; 结果&#xff1a;不是。无论在任何位置插入或者删除元素时&#xff0c;都会进行内存的分配…

jquery如何获取checkbox的值

jquery如何获取checkbox的值 一、总结 一句话总结&#xff1a;就是通过jquery获取哪些对应name的checkbox&#xff0c;然后找出:check&#xff08;被选中的&#xff09;&#xff0c;然后通过jquery的each遍历获取这些的值即可 $(input[namecheckboxName]:checked).each遍历取值…

Linux文件查找命令find,xargs详述

Linux文件查找命令find,xargs详述 总结&#xff1a;zhy2111314来自&#xff1a;LinuxSir.Org整理&#xff1a;北南南北摘要&#xff1a; 本文是find 命令的详细说明&#xff0c;可贵的是针对参数举了很多的实例&#xff0c;大量的例证&#xff0c;让初学者更为容易理解&#xf…

WTL 学习博文地址

http://blog.chinaunix.net/u/884/showart_148905.html转载于:https://www.cnblogs.com/changping/archive/2010/11/09/1873078.html

git命令:修改已经commit的注释

在使用git命令时&#xff0c;有时commit后&#xff0c;突然想起来忘记修改commit的注释。修改commit的注释使用下面的命令&#xff1a; git commit --amend 本人也是最近2周才开始使用git&#xff0c;有些也理解不到位&#xff0c;在工作中实操之后记录下来&#xff0c;工作环…

当前读与快照读

概念 快照读 读取的是记录数据的可见版本&#xff08;可能是过期的数据&#xff09;&#xff0c;不用加锁 当前读 读取的是记录数据的最新版本&#xff0c;并且当前读返回的记录都会加上锁&#xff0c;保证其他事务不会再并发的修改这条记录   概念说的比较虚&#xff0c;也不…

误删表数据,如何恢复过来

/* 真实案例:在执行语句的时候错误的把系统中的一个表的数据全部删除 在删除之前&#xff0c;我做过一次完整的数据库备份&#xff0c;再删除之后&#xff0c;我第一时 间做了尾日志备份 也就是说 我手上现在有一份最新的完整备份 和删除数据之后的尾 日…

git命令:将多个commit提交记录修改为1条

本人也是最近2周才开始使用git&#xff0c;有些也理解不到位&#xff0c;在工作中实操之后记录下来&#xff0c;工作环境linux ubuntu。 变基时有六个命令可用&#xff1a; pick pick只是意味着包括提交。重新进行命令时&#xff0c;重新安排pick命令的顺序会更改提交的顺序…