标签: nullreferenceexception

我的LINQ to XML代码中的空引用异常

我一直在努力将XML文件链接到下拉列表和网格视图.

我已经设法从XML文档填充一个下拉列表,然后将gridview填充到另一个,但是当尝试添加where子句时,我得到一个空引用异常并且不确定原因.我该如何解决这个问题?

XDocument xmlDoc = XDocument.Load(Server.MapPath("XMLFile.xml"));
var q = from c in xmlDoc.Descendants("Images")
        where c.Attribute("PropertyId").Value == DropDownList1.SelectedValue.ToString()
        select new
        {
            PropertyID = c.Element("ThumbUrl").Value,
        };
GridView1.DataSource = q;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

c# xml linq linq-to-xml nullreferenceexception

1
推荐指数
1
解决办法
2199
查看次数

在C#中使用数组的NullReferenceException

我想创建一个包含我正在处理的所有Pushpin对象的数组.在尝试填充Array时,我收到NullReferenceException抛出未处理的错误.我已经阅读了尽可能多的文档,但无法解决发生的事情.

我至少尝试了以下方法:

Pushpin[] arrayPushpins;
int i = 0;
foreach (Result result in arrayResults)
                {
                    Pushpin pin;
                    pin = new Pushpin();
                    pin.Location = d;
                    myMap.Children.Add(pin);
                    arrayPushpins[i] = new Pushpin();
                    arrayPushpins.SetValue(pin, i);;
                    i++;
                }
Run Code Online (Sandbox Code Playgroud)

和...

Pushpin[] arrayPushpins;
int i = 0;
foreach (Result result in arrayResults)
                {
                    Pushpin pin;
                    pin = new Pushpin();
                    pin.Location = d;
                    myMap.Children.Add(pin);
                    arrayPushpins[i] = new Pushpin();
                    arrayPushpins[i] = pin;
                    i++;
                 }
Run Code Online (Sandbox Code Playgroud)

似乎没有任何工作......我每次都会得到NullReference错误.有任何想法吗?非常感谢!将.

c# arrays nullreferenceexception

1
推荐指数
1
解决办法
2111
查看次数

检查'null'

是否C#有一些经验法则或编码约定契约,它处理可能的null论证?

作为一个例子,我正在编写一个自定义方法,它检索一个byte[] data参数.

public static string ConvertDataToMyOwnAndCustomString(byte[] data) { ... }
Run Code Online (Sandbox Code Playgroud)

现在-我应该怎么做,如果传递的datanull

我应该保留它,以便可能NullReferenceException发生吗?或者我应该写支票并做这样的事情:

if (data == null) return null;
Run Code Online (Sandbox Code Playgroud)

c# convention null nullreferenceexception

1
推荐指数
1
解决办法
248
查看次数

变量导致NullReferenceException,即使它已设置

也许我正在做一些非常错误的事情,但不知何故,这段代码总是崩溃并出现NullReferenceException:

public class IncomingMessageEventData : EventArgs
{
    public IncomingMessageEventData(SpecialClasses.IncomingMessageData _msg, List<string> _toreturn)
    {
        msg = _msg;
        ToReturn = _toreturn;
    }
    public SpecialClasses.IncomingMessageData msg { get; set; }
    public List<string> ToReturn { get; set; }
}
public delegate void IncomingMessageHook(IncomingMessageEventData Args);
public event IncomingMessageHook InComingMessage;
public string NewMessage(string[] _message, System.Net.IPEndPoint RemoteIP)
{
    if (InComingMessage != null)
    {
        IncomingMessageEventData data = new IncomingMessageEventData(new SpecialClasses.IncomingMessageData(_message, RemoteIP), new List<string>());
        string ToReturn = "";
        InComingMessage(data);
        foreach (var item in data.ToReturn)
        {
if (item.Length > 0) …
Run Code Online (Sandbox Code Playgroud)

.net c# events nullreferenceexception

1
推荐指数
1
解决办法
339
查看次数

如何在有机会抛出异常之前将null值转换为string.empty?

我有以下代码将以前的值输入DataGridView单元格.如果在第0行和第2列或更大,则向左的val,否则直接在上面的值:

private void dataGridViewPlatypi_CellEnter(object sender, DataGridViewCellEventArgs args)
{
    // TODO: Fails if it sees nothing in the previous cell
    string prevVal = string.Empty;
    if (args.RowIndex > 0)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex - 1].Cells[args.ColumnIndex].Value.ToString();
    } else if (args.ColumnIndex > 1)
    {
        prevVal = dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex-1].Value.ToString();
    }
    dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex].Value = prevVal;
}
Run Code Online (Sandbox Code Playgroud)

只要有值可以查看和复制,这就很有用.如果单元格是空白的,我得到:

用户代码未处理System.NullReferenceException
消息=未将对象引用设置为对象的实例.

我猜这是一个使用null coalesce运算符的机会,但(假设我的猜测很好),我该如何实现呢?

c# datagridview nullreferenceexception winforms datagridviewtextboxcell

1
推荐指数
1
解决办法
1万
查看次数

使用"as"运算符可能出现Null Reference Exception

在以下代码中:

MyObject objInstance;

private void someEventHandler(object sender, EventArgs e)
{
    if (sender == objInstance && (sender as MyObject).SomeBoolProperty)
        // Do Something
}
Run Code Online (Sandbox Code Playgroud)

Resharper警告sender as MyObject可能是一个可能的NullReferenceException.这个代码可以吗?我假设如果sender == objInstance(sender as MyObject)不会返回null,但这不是第一次Resharper消息告诉我C#行为/功能我不知道.

c# resharper nullreferenceexception

1
推荐指数
2
解决办法
818
查看次数

在没有找到数据的情况下返回null通用列表?

我的客户端代码在四种不同的方法中几乎相同(不同之处在于调用的特定Web API RESTful方法和相应的操作通用列表).

在四种情况中的三种情况下,我可以突破while循环(请参阅如何在没有使用"占位符"的情况下安全循环直到没有其他任何事情可以做到这一点?)像这样:

if (arr.Count <= 0) break;
Run Code Online (Sandbox Code Playgroud)

...但在一种情况下,一旦没有从RESTful方法返回的数据,就会导致NRE.在那种方法中,我必须使用:

if (null == arr) break;
Run Code Online (Sandbox Code Playgroud)

我现在知道为什么,因此:

UPDATE

行为不同的原因是因为存储库代码不同.因此,我正在改变问题" 为什么在大多数情况下检查JArray.Count是否有效,但在一个特定情况下会导致NRE? "

以下是检查数组计数的三种方法的工作方式:

public IEnumerable<Subdepartment> Get(int ID, int CountToFetch)
{
    return subdepartments.Where(i => i.Id > ID).Take(CountToFetch);
}
Run Code Online (Sandbox Code Playgroud)

...这里是RedemptionRepository中包含的"备用版本":

public IEnumerable<Redemption> Get(int ID, int CountToFetch)
{
    IEnumerable<Redemption> redempts = null;
    if (redemptions.Where(i => i.Id > ID).Take(CountToFetch).Count() > 0)
    {
        redempts = redemptions.Where(i => i.Id > ID).Take(CountToFetch);
    }
    return redempts;
}
Run Code Online (Sandbox Code Playgroud)

因此,为了与所有四种方法保持一致,我可以像上面那样制作所有其他存储库方法(当没有找到数据时返回null),并将客户端中的测试条件更改为无效,或者我可以还原Redemption存储库代码就像它以前/像其他人一样.

所以问题是:哪个是首选方法(没有双关语意)?

c# arrays json.net nullreferenceexception asp.net-web-api

1
推荐指数
1
解决办法
84
查看次数

尝试读取连接字符串的NullReferenceException

我有两个项目.一个是网络,另一个是Windows窗体.Web项目连接到数据库,但Windows项目抛出异常NullReferenceException读取连接字符串.

我使用相同的类来连接两个项目.使用LINQTOSQL建立连接.

这是我的连接字符串:

<connectionStrings>
    <add name="GPSystemConnectionString"
         connectionString="Data Source=.;Initial Catalog=GPSystem;User ID=***;Password=***"
         providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

这就是我读它的方式.

string CS = ConfigurationManager.ConnectionStrings["GPSystemConnectionString"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)

(此行发生异常).....(对象引用未设置为对象的实例.)

注意:我使用相同的类连接两个项目....一个连接但另一个失败.

请任何人帮我这个!

先感谢您.

c# sql configurationmanager nullreferenceexception

1
推荐指数
2
解决办法
1万
查看次数

尝试将对象添加到类中的列表时,"对象引用未设置为对象的实例"错误

我定义了一些自定义类,包括其他类的列表,如下所示:

public class Unit
{
    public string Name { get; set; }
    public List<Group> Contains { get; set; }
}

public class Group
{
    public string Name { get; set; }
    public Type Type { get; set; }
    public int Number { get; set; }
}

public static Type basic_1 = new Type() { Name = "basic_1", Number = 1, Cost = 13 };
Run Code Online (Sandbox Code Playgroud)

基本思想是你有一个包含一个组列表的单元,每个组都有不同的类型.该类型包含特定属性,而包含它们的类本质上是组织的.

然后我尝试开始构建这些类,如下所示:

Unit unit1 = new Unit() { Name = "Unit 1" };
Group group1 = …
Run Code Online (Sandbox Code Playgroud)

c# class list object nullreferenceexception

1
推荐指数
1
解决办法
2万
查看次数

ASP.NET MVC使用可能具有或不具有null值的值的正确方法?

使用可能具有或不具有null值的值的正确方法是什么?

我有一段代码,如果正在休假的员工有一位经理,则会向经理发送电子邮件。

 if(holidayRequestForm.Employee.Site.SiteManagerEmail != null)
            { 
            SendMailToManager();
            }
Run Code Online (Sandbox Code Playgroud)

但是,这导致了NullReferenceException。

什么是执行调用正确的方法SendMailToManager()如果员工有一个,而不会引起NullReferenceException

这样使用可能的null值是不好的做法吗?

c# asp.net-mvc nullreferenceexception

1
推荐指数
1
解决办法
38
查看次数