C#编译问题:1个语句中的换行符导致错误

时间:2008-12-20 13:19:15

标签: c# compilation newline

一个简单的问题

在C#中考虑这段代码

String a;
String b;
String c;

 1. a =  
 2. b =
 3. //Comment
 4. c = "a String";

在编译期间,它很好,但是当我运行我的应用程序时遇到错误。从我的日志中,错误发生在上面。

问题:

错误是由第3行的评论引起的吗?

错误是“对象引用未设置为对象的实例”

我猜测编译器会将上面的代码视为1语句。

此代码位于aspx页面后面的代码中。 (aspx.cs)

// //背景故事

aspx在测试服务器中进行了测试并且是文件。但是,在我们将页面部署到生产服务器之后,pageload()出现错误,发生错误的行位于上面代码示例的第1行。

我怀疑这个错误是由评论引起的。

我是对的吗?

4 个答案:

答案 0 :(得分:2)

您的原始代码不合法​​。你编辑的代码很好;所有3个变量都分配了相同的字符串(“a String”)。

您看到了哪些确切的错误?


(更新的问题包括“未将对象引用设置为对象的实例”)

此错误与发布的代码无关(除非您在粘贴时错误地表示代码),而与//注释无关。你需要去别处看看。尝试查看堆栈跟踪或注入调试/输出消息。或者只是单步执行代码以查看它实际爆炸的位置。

答案 1 :(得分:2)

编译器忽略第3行“//”右边的所有内容,但第1,2和4行仍然是同一语句的一部分(以及第4行以下的任何内容,直到“;”或块为止)到了)。

除非您的示例代码在发布时丢失了某些内容,否则此代码甚至不应编译(解析错误)。


好的,使用您编辑的代码,语法是有效的,不应该是您的错误的原因。请发布错误...

答案 2 :(得分:1)

将其重写为

时是否有效
a = b = c = "a String";

?如果是这样,很清楚是什么导致了你的问题;)

答案 3 :(得分:0)

您的代码中没有错误。它运行正常。如果您看到错误,则会出现在其他地方。