我无法调试,mscorlib.dll错误

时间:2016-10-07 17:08:40

标签: c# .net asp.net-mvc dll visual-studio-2015

当我启动我的项目时(在Debug或Release,Visual Studio 2015中),我收到此错误:

Error on start project

  我试图修复我的.NET框架,但我没有成功,我无法调试此错误,因为它不是代码错误。

哪个会导致它?


我该如何修理?


如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

当您尝试访问没有值或技术上具有值NullReferenceException的对象/方法/变量时,会出现null,例如:

using System;
using System.Collections.Generic;

public class Example
{
   public static void Main(string[] args)
   {
      int value = Int32.Parse(args[0]);
      List<String> names;
      if (value > 0)
         names = new List<String>();

      names.Add("Major Major Major");       
   }
}
  

来源:https://msdn.microsoft.com/en-us/library/system.nullreferenceexception(v=vs.110).aspx

在上面的代码中。程序将创建一个名为names的字符串列表,然后在 IF - 语句中它将实例化名称列表,因为列表将被实例化的唯一方法是IF a < strong> CONDITIONAL 语句成功,通常知道条件语句并不总是正确。

因此,代码将是这样的,创建一个名为names的字符串列表并等于null(因为程序员不等于这样的任何东西; List<string> names;而不是这个; List<string> names = new List<string>();

上面的代码,我给你也可以导致NullPointerException(如果删除了if语句及其中的代码)。

所以要解决这个问题,我们需要完全删除If语句并实例化名称列表,所以代码现在看起来像这样。

using System;
using System.Collections.Generic;

public class Example
{
   public static void Main(string[] args)
   {
      int value = Int32.Parse(args[0]);
      List<String> names = new List<String>();

      names.Add("Major Major Major");       
   }
}

另一个例子:

string i;
if(i == "hello") {/*Do something*/} 
// Causes error because I is not set to any value or null
// (null is mostly the default variable given to any object/method/variable that is not specified to contain any value specified by the programmer)

修正:

string i;
i = "hi";
if(i == "hello") {/*Do something*/} 
// Will not throw exception but returns false because I is set to hi and not hello
//Or you could just do this int i = 1; and remove the "i = 1" part
P.S:我希望你在回答你的问题之前没有想到这一点,否则我解释和回答你的问题的努力将毫无用处。