我认为我的观点很清楚,在任何情况下,这都会抛出空引用异常吗?即在尝试访问其Count属性时反对e.Result为null .
if (e.Result == null || e.Result.Count == 0)
return;
Run Code Online (Sandbox Code Playgroud)
编辑:为了充分利用这个问题(对于后来的问题),我们如何防止异常发生,我们可以使用lock声明吗?怎么样?
有人可以解释一下这怎么可能:
foreach (var pair in Expected.Zip(
Actual, (x, y) => new { Expected = x, Actual = y }))
{
// No match for a 'null' series.
if (pair.Actual == null) yield return 0;
var actualPaths = pair.Actual.Images.Select(x => x.Path).ToList();
}
Run Code Online (Sandbox Code Playgroud)
这段代码(in Microsoft Visual Studio 2008)在线停止var actualPaths = ...并表示pair.Actual等于null,因此提高了一个NullReferenceException.
这怎么可能呢?我错过了什么吗?
我使用ReSharper for VisualStudio,并想知道为什么Response会保证以下粗体文本的空引用异常警告:
HttpContext.Current.Response.Cookies ["MyCookie"] .Value ="MyValue";
我一直都知道这是初始化一个新cookie的方法,并且只希望为Requesting一个cookie值生成这个警告.ReSharper对我说谎吗?如果没有,发生了什么?非常感谢.
我正在使用winforms和C#.

当我尝试获取datagridviewcheckbox状态时,如果复选框不为true,则显示"Null Reference Exception被捕获"为异常.
我的代码是
foreach (DataGridViewRow fees_row in this.dataGridView2.Rows)
{
if ((bool) fees_row.Cells[0].Value == true)
{
}
}
Run Code Online (Sandbox Code Playgroud)
错误在于:
if ((bool) fees_row.Cells[0].Value == true)
Run Code Online (Sandbox Code Playgroud)
如何设置datagridview复选框值不为null.或者逃避这个例外.
当我在调试模式下运行我的程序时,它会在非空的对象上弹出NullReferenceException - 它显示为Locals视图中定义的.有问题的对象是SFML.Graphics.Sprite,其中只有一个字段为null(myInverseTransform),但是当我检查其他Sprite时,它们也是null.
有谁知道是什么导致这种情况,或者我怎样才能找到异常引用的空对象是什么?
相关代码:
这是代码:
(在雪碧:)
public void Draw(RenderTarget target, RenderStates states)
{
states.Transform *= Transform;
RenderStates.MarshalData marshaledStates = states.Marshal();
if (target is RenderWindow)
{
sfRenderWindow_drawSprite(((RenderWindow)target).CPointer, CPointer, ref marshaledStates);
}
else if (target is RenderTexture)
{
sfRenderTexture_drawSprite(((RenderTexture)target).CPointer, CPointer, ref marshaledStates);
}
}
Run Code Online (Sandbox Code Playgroud)
(在变换:)
public static Transform operator *(Transform left, Transform right)
{
return new Transform(left).Combine(right);
}
public Transform Combine(Transform transform)
{
sfTransform_combine(CPointer, transform.CPointer);
return this;
}
else if (target is RenderTexture)
{
sfRenderTexture_drawSprite(((RenderTexture)target).CPointer, CPointer, ref marshaledStates);
}
} …Run Code Online (Sandbox Code Playgroud) 我正在使用第三方API,而笨拙地利用ref参数来产生输出.就个人而言,我真的很讨厌这个API的设计,但这是我现在可以使用的.由于专有代码,我不得不略微隐藏API的数据类型,但这应该与手头的问题无关.
无论如何,在C#中,我可以成功地将null引用作为ref参数传递,如下所示:
IDataType tl = null;
bool success = api.myFunction(ref tl);
Run Code Online (Sandbox Code Playgroud)
但是在F#中,以下内容不起作用
let mutable tl : IDataType = null //null reference assignment in F#
let success = api.myFunction(&tl) //& means ref in F#
Run Code Online (Sandbox Code Playgroud)
它返回一个空引用异常错误.C#中没有返回此类错误.
有没有人经历过这个?我认为它必须是API本身的一个相对古老的设计中的错误.
**编辑:这应该是关闭的,我相信答案不在于F#代码,而在于API,因为它已经有许多与此类似的已知错误.
为什么我要检查一下Action是不是null要避免得到NullReferenceException?如果没有行动是不合逻辑的,那么可以随便什么也行不通?我不明白为什么它要抛出异常.Action是一个类,为什么不处理这个问题呢?
有没有办法在c#中进行通用的级联空引用检查?
我想要实现的是,如果我试图访问一个字符串变量,它是C类的一部分,它在B类中,在A中.
ABCstr
而且我在A中传递,我将检查A是否为空,然后检查B是否为空,然后检查C是否为null然后访问str.
是否有可能有一些方法 - 我们可以传入,A和ABCstr,如果一切正确存在,则返回null是null或str的值.
我在我的meteor应用程序中添加了accounts-github,但是当我尝试访问Meteor.user.services.github.email时,我得到的是null.即使我知道电子邮件是在我的github帐户中设置的.我究竟做错了什么?该字段在那里,似乎帐户-github应该只为我取电子邮件...
在c#我们可以使用??操作是这样的:
class Program
{
static void Main(string[] args)
{
Dog fap = new Dog("Phon", Sex.Male);
Dog dog = new Dog("Fuffy", Sex.Male);
Console.WriteLine(fap.Name ?? dog.Name);
}
}
class Dog : IAnimal
{
public Dog(string name, Sex sex)
{
this.Name = name;
this.Sex = sex;
}
public string Name { get; set; }
public Sex Sex { get; set; }
public void Attack()
{
throw new NotImplementedException();
}
public void Eat()
{
throw new NotImplementedException();
}
public void …Run Code Online (Sandbox Code Playgroud)