这个编程难题的灵感来自于昨天在这里提出但又被作者删除的另一个问题。
挑战:
使用Visual C#(或您喜欢的C#IDE)创建可执行二进制文件(Windows .EXE或Linux二进制文件),该文件将以下文本打印到标准输出中:
Main() is the main method of C# programs!
...而不使用任何源文件中出现的4个连续字母MAIN!
笔记:
- 如果您的源代码包含文本
remainder
(例如),则它包含4个连续的字母MAIN,但是如果包含4个字母,则mxain
不再是连续的,因此mxain
将被允许。 除了C#IDE之外,您不能运行任何程序,也不能更改C#IDE的设置来运行其他程序(但可以正常运行的程序,例如C#编译器)。
否则,您可以简单地说:“我使用C#IDE编写Pascal程序,并在C#项目的“预构建”步骤中调用Pascal编译器。
这太简单了。
可以使用“插件”(或类似插件)进行扩展的IDE用户,或具有内置二进制文件编辑器(十六进制编辑器)的用户,将比其他C#IDE的用户拥有太大的优势。
因此,也不应使用这些功能。
- 明确允许使用其他非ASCII编辑器(例如对话框窗口编辑器)!
- 用户使用函数名称中的反斜杠提出这样的原始问题,就像这样:
static void M\u0061in()
由于其他用户已经阅读了此答案,因此将不再接受该答案! - 用户询问是否允许将.EXE文件简单地输入到源代码编辑器中,并将文件另存为“ .exe”而不是“ .cs”。答:我认为这不可能,因为有效的Windows和Linux二进制文件都包含NUL字节。但是,如果找到可以通过这种方式创建的有效二进制文件,则您将获得有效的解决方案。
该站点的名称是“ Programming Puzzles & Code Golf”-这是“ Programming Puzzles & Code Golf”,而不是“ Code Golf”:挑战是要在所有其他用户之前找到可行的解决方案,而不是找到比所有其他用户都短的解决方案解决方案。
因此,描述有效解决方案的第一篇文章胜出!
祝好运!
顺便说一句:我有一个在Visual C#Express 2010下工作的解决方案。