首页新闻里面那个
[新闻头条]有趣啊!各种编程语言实现 2 + 2 = 5
其他的就不评论的,但是其中C#版的 真是逗比啊...评论中各种吐槽有木有...
staticvoidMain (string[] args)
{varx =2;vary =2;if(1==0) ;
{++x;
}
Console.WriteLine (x+y);
}
所以我闲来无聊 ~~ 也来实现一个....
staticvoidMain(string[] args)
{using(varp =newCSharpCodePRovider())
{
Console.SetOut((TextWriter)p.CompileAssemblyFromSource(newCompilerParameters() { GenerateExecutable =false, GenerateInMemory =true, IncludeDebugInformation =false},"using System.IO;using System.Text;class a:TextWriter{TextWriter _;public a(TextWriter w){_=w;}public override void Write(char v){_.Write(v=='4'?'5':v);} public override Encoding Encoding{get{return _.Encoding;}}}").CompiledAssembly.GetTypes()[0].GetConstructor(new[] {typeof(TextWriter) }).Invoke(newobject[] { Console.Out }));
}
Console.WriteLine("{0}+{1}={2}",2,2,2+2);
}
解释下
就是重定义了输出到控制台的TextWrite对象 让4变成5 也没什么意义
总是比新闻那个版本高级一点的...呵呵~~