C#小游戏

Forty2 2016-08-29 09:13:59

代码很简单,单项选择A,B,C,能附上理由更佳。
请尽量回答后再上机验证:)

class Program
{
static void Main()
{
int a = 1, b = 2, c = 3;
System.Console.WriteLine("{0} {1}", a < b, c > (1 + 1) * 1.5, a, b, c);
}
}

/*
A: true false
B: true true
C: Visual Studio不知道如何编译。
*/
...全文
416 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Forty2 2016-08-30
  • 打赏
  • 举报
回复
谢谢朋友们的参与。 答案是C,原因确如大家所讨论的,是泛型语法(大于号,小于号)造成的歧义,导致VS编译错误。 把a < b, c > (1 + 1) * 1.5 解释为泛型函数调用的例子如下:
class Program
{
    static void Main()
    {
        Console.WriteLine("{0} {1}", a<b, c>(1 + 1) * 1.5, "");  // 输出 30
    }

    static double a<T1, T2>(double d) { return 20; }
    class b { }
    class c { }
}
注一、 答案C也不是绝对准确。DotNet1.1还不支持泛型, Visual Studio .NET 2003可以通过编译并运行出答案A。 注二、 微软早知道该歧义(C++也有类似问题)。因为出现歧义的概率很小,而且可以用编译器来抱怨,他们还是选用了(大于号,小于号)作为泛型语法标志。
dianjixue1 2016-08-30
  • 打赏
  • 举报
回复
原来结果是这样。3#,5#已将答案贴出......
HerveyHall 2016-08-29
  • 打赏
  • 举报
回复
学习到了
xian_wwq 2016-08-29
  • 打赏
  • 举报
回复
实践证明要确保表达式的正确性,()非常重要
  • 打赏
  • 举报
回复
好吧。。。。。居然是无法编译…… 看来编译器判断泛型的优先级比较高
bigbaldy 2016-08-29
  • 打赏
  • 举报
回复
b和c被当成泛型参数了
  • 打赏
  • 举报
回复
A a<b这个不难理解,c > (1 + 1) * 1.5这个是整形与double型比较,整形会被强转为double型,而在强转后,一般会出现精度问题,即丢失精度,进而导致比同等值的double小,最终又回到了double比较方式是 Math.Abs(c- (1 + 1) * 1.5)<0.0001这种小于指定精度就认为正确的解决方案上来
xuzuning 2016-08-29
  • 打赏
  • 举报
回复
C a < b, c > (1 + 1) * 1.5 < b, c > 被解释成了类型声明 编译器将其理解为在执行 a<b, c> (1 + 1) 方法 写作
System.Console.WriteLine("{0} {1}", (a < b), c > (1 + 1) * 1.5, a, b, c);
即可
巴士上的邂逅 2016-08-29
  • 打赏
  • 举报
回复
歧义句
夏天的枫 2016-08-29
  • 打赏
  • 举报
回复
引用 2 楼 hjq624779687 的回复:
我把a<b改成了(a<b),结果是True Flase
按照原来的写法会报错。。。VS把a<b,c>看成一个单元了。
夏天的枫 2016-08-29
  • 打赏
  • 举报
回复
我把a<b改成了(a<b),结果是True Flase
巴士上的邂逅 2016-08-29
  • 打赏
  • 举报
回复
哈哈,竟然会这样!!
crystal_lz 2016-08-29
  • 打赏
  • 举报
回复
差点就上当选A了。。。。。。。。
Poopaye 2016-08-29
  • 打赏
  • 举报
回复
选项应该这样写 A: true true B: true false C: false true D: false false
Poopaye 2016-08-29
  • 打赏
  • 举报
回复
我选c
扩展功能: a. 首先满足网友的”口味”, 重新设计了所有旗子, 选择新的旗盘背景, 换了一个更清爽的面. (界面配色并不是件很容易的事情, 这样的棋类游戏长时间容易使眼睛疲劳, 首先要做到选择的色彩 不刺激眼睛,其实大部分色彩都比较刺激眼睛,尤其是纯三基色(红/黄/蓝), 还要使界面做得漂亮). b. 增加”回放” 功能. 当下完旗子时,可以重新回味一下, 刚杀完的一盘旗,可以寻找不足和重新感受 一下胜利的喜悦! 这个功能比较复杂! d. 又看了一下电脑走旗, 感觉确实比较难处理, 没有高人指点写这个算法确实比较难, 应该比以前聪明 了一些, 但是还是比较笨, 打算有空去找个现在的电脑走旗组件替换上, 自己的电脑走旗算法慢慢研 究(当时是因为实在找不到现在的组件, 自己写了个较笨的,如果哪位朋友能够提供组件,在次深表感谢!!!). e. 扩展走旗的步数容量, 有些网友, 对战的都是高手, 产生数组越界, 这次从 200 扩展到了500, 当然 您还可以扩展到更大,因为源代码已经开放). f. 增加图像缓存功能. g. 解决 .net 从framework 1.0到framework 2.0升级出现的程式升级逻辑问题及一个小bug. h. 本来我只是想把这个程式放到Blog上, 供爱好c#的网友学习,一起交流一下, 没想到反应那么的强烈! 经常收到网友的反馈邮件, 从下载量看,不到一年仅从我的下载空间(不算网友转载下载次数)就有近 二万五千次. 所以又重新看懂已经基本忘记的代码,修复了bug,并扩展了以上功能. 有可能还会增加一些功能! 另外,在此对给我提交建议和bug的朋友表示感谢!!! (开发语言: C#语言) 来自:http://community.csdn.net/Expert/topic/5237/5237003.xml?temp=.4600031

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧