一个简单的问题
在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行。
我怀疑这个错误是由评论引起的。
我是对的吗?
答案 0 :(得分:2)
您的原始代码不合法。你编辑的代码很好;所有3个变量都分配了相同的字符串(“a String”)。
您看到了哪些确切的错误?
(更新的问题包括“未将对象引用设置为对象的实例”)
此错误与发布的代码无关(除非您在粘贴时错误地表示代码),而与//
注释无关。你需要去别处看看。尝试查看堆栈跟踪或注入调试/输出消息。或者只是单步执行代码以查看它实际爆炸的位置。
答案 1 :(得分:2)
编译器忽略第3行“//”右边的所有内容,但第1,2和4行仍然是同一语句的一部分(以及第4行以下的任何内容,直到“;”或块为止)到了)。
除非您的示例代码在发布时丢失了某些内容,否则此代码甚至不应编译(解析错误)。
好的,使用您编辑的代码,语法是有效的,不应该是您的错误的原因。请发布错误...
答案 2 :(得分:1)
将其重写为
时是否有效a = b = c = "a String";
?如果是这样,很清楚是什么导致了你的问题;)
答案 3 :(得分:0)
您的代码中没有错误。它运行正常。如果您看到错误,则会出现在其他地方。