a-b(= 100)会在C#中编译吗?

时间:2011-02-16 06:42:33

标签: c# compilation

using system;

class Program
{
public static void main()
 {
  int a = 200,b;
  a-(b=100);
 }
}

以上程序是否发出错误?如果是这样,为什么?我不在可以执行代码的环境中。

6 个答案:

答案 0 :(得分:5)

即使没有 (本地) 编译器,您也可以进行检查:

http://ideone.com/m3qJ2

  

prog.cs(8,4):错误CS0201:只能将赋值,调用,递增,递减和新对象表达式用作语句   编译失败:1个错误,0个警告

这是我编写代码时最接近的代码 - http://ideone.com/FPZJq

using System;

class Program
{
public static void Main()
 {
  int a = 200,b;
  int c = a-(b=100);
 }
}

错误:

  • a-(b=100)不是C#中的有效语句。许多语言允许这样的空语句(如2;),但不允许这样。
  • using system;应写为using System;
  • main应写为Main

回答你的问题:你的代码没有给出运行时错误 - 它甚至都没有效。但是,它会产生几个编译错误。

答案 1 :(得分:2)

表达式a - (b = 100)不是有效语句,因此代码不会编译。

答案 2 :(得分:2)

它无法编译。 a-(b=100);不是有效的陈述,因为:

“只有赋值,调用,递增,递减和新对象表达式才能用作语句”

答案 3 :(得分:2)

它在方法的第二行给出了这个编译器错误,因为你有一个试图用作语句的表达式:

  

只能将赋值,调用,递增,递减和新对象表达式用作语句。

如果将表达式的值赋给变量,则编译:

a = a - (b = 100);

答案 4 :(得分:1)

A-(B = 100)

  

这没有任何编译和工作   C和C ++都有错误,只是尝试过   进行。

我没有进入C#所以不能肯定地说这个但是相信我C,C ++根本没有错误或警告,只需编译并且工作正常。

答案 5 :(得分:0)

我认为至少它会给出错误:变量b未定义。