0

一个简单的问题

考虑 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

4 回答 4

2

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

你看到了什么确切的错误?


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

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

于 2008-12-20T13:26:33.610 回答
2

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

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


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

于 2008-12-20T13:33:34.157 回答
1

当你重写它时它是否有效

a = b = c = "a String";

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

于 2008-12-20T13:27:59.067 回答
0

您的代码中没有错误。它运行良好。如果您看到错误,则它在其他地方。

于 2008-12-20T14:45:43.793 回答