一个小问题

天台的故事 2013-10-28 10:07:55

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i = 0;
++i+i++;
Console.WriteLine(i);
}
}
}

上面的++i+i++;为什么在C#中不行,在C++和C都可以啊
...全文
331 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
siemens_chang 2013-10-29
  • 打赏
  • 举报
回复
引用 5 楼 wanghui0380 的回复:
额,千万别研究这个,除非你真的愿意站着穿长衫喝酒 编译器决定如何解析,当你努力的写出200年前那个流行回字,那又如何,换个编译器,换个年代,俺们既不站着喝酒,也不穿长衫(郭德纲除外)
抽烟、喝酒、烫头都可以有
天台的故事 2013-10-29
  • 打赏
  • 举报
回复
引用 8 楼 icdbow 的回复:
个人认为出现这样的代码,可读性不是一般的低。 目前除了那些脑进水的出考题的“专家”这样写过,还没碰到哪个公司做项目这样搞的。
平时开发肯定不会这么写了,但是就是感觉C#语法检查的太严格了,一时还不适应。
天台的故事 2013-10-29
  • 打赏
  • 举报
回复
引用 7 楼 wddw1986 的回复:
习惯写C++来写C#干什么,要是你们领导逼的,我劝你直接跟领导谈,先从C++的优越性讲起,再说自己在C++上面的造诣,明事理的领导肯定会让你做回C++的。
没用,我们要做得是一个阿里巴巴平台的软件,用C#开发最快也最容易,这个不考虑执行效率的,能用就行,所以老板非要选中它。
天台的故事 2013-10-29
  • 打赏
  • 举报
回复
引用 9 楼 lyq8376 的回复:
[quote=引用 3 楼 yuzengyuan 的回复:] 为啥它就不允许啊,我看这样挺好的,写惯了C++来写C#真的不习惯
c++中不存在真正的对象,最多算伪对象 c#是真正面向对象的编程语言,肯定要比c++严格些 楼主要换成c#开发,就必须适应这种严格性[/quote]习惯了用C++和MFC开发,顿时用C#开发真不习惯,可老板非要用C#。
huwei001982 2013-10-29
  • 打赏
  • 举报
回复
蛋。。疼。。
  • 打赏
  • 举报
回复
引用 3 楼 yuzengyuan 的回复:
为啥它就不允许啊,我看这样挺好的,写惯了C++来写C#真的不习惯
c++中不存在真正的对象,最多算伪对象 c#是真正面向对象的编程语言,肯定要比c++严格些 楼主要换成c#开发,就必须适应这种严格性
Code従業員 2013-10-29
  • 打赏
  • 举报
回复
个人认为出现这样的代码,可读性不是一般的低。

目前除了那些脑进水的出考题的“专家”这样写过,还没碰到哪个公司做项目这样搞的。
cheng2005 2013-10-29
  • 打赏
  • 举报
回复
习惯写C++来写C#干什么,要是你们领导逼的,我劝你直接跟领导谈,先从C++的优越性讲起,再说自己在C++上面的造诣,明事理的领导肯定会让你做回C++的。
_小黑_ 2013-10-29
  • 打赏
  • 举报
回复
我就是大神 2013-10-29
  • 打赏
  • 举报
回复
引用 6 楼 l397870376 的回复:
技术区你也水
linrachel 2013-10-29
  • 打赏
  • 举报
回复
引用 7 楼 wddw1986 的回复:
习惯写C++来写C#干什么,要是你们领导逼的,我劝你直接跟领导谈,先从C++的优越性讲起,再说自己在C++上面的造诣,明事理的领导肯定会让你做回C++的。
赞!
wanghui0380 2013-10-28
  • 打赏
  • 举报
回复
额,千万别研究这个,除非你真的愿意站着穿长衫喝酒 编译器决定如何解析,当你努力的写出200年前那个流行回字,那又如何,换个编译器,换个年代,俺们既不站着喝酒,也不穿长衫(郭德纲除外)
reenjie 2013-10-28
  • 打赏
  • 举报
回复
为了安全,就算是i++;语句也是相当于i=i+1;但是a+b只是一个表达式,而不是一个语句。int c=a+b;才是一个表达式语句。
天台的故事 2013-10-28
  • 打赏
  • 举报
回复
引用 2 楼 reenjie 的回复:
根据运算符的优先级,++比+的优先级高,也就是(++i)+(i++);但是C#不允许这样的表达式作为一条语句。 如果修改为int j=++i+i++;就没有问题了。
为啥它就不允许啊,我看这样挺好的,写惯了C++来写C#真的不习惯
reenjie 2013-10-28
  • 打赏
  • 举报
回复
根据运算符的优先级,++比+的优先级高,也就是(++i)+(i++);但是C#不允许这样的表达式作为一条语句。 如果修改为int j=++i+i++;就没有问题了。
threenewbee 2013-10-28
  • 打赏
  • 举报
回复
因为C#是为程序员准备的语言,而不是疯子。

110,571

社区成员

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

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

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