小编erm*_*erd的帖子

该对象为null,但检查它是否为null返回false

我在C#4.5中遇到了一个奇怪的问题.

我的模型中有这个:

private DataMatrix<T> _matrix;

public DataMatrix<T> Matrix
{
    get { return _matrix; }
    set { _matrix = value; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个使用这个的属性:

public object SingleElement
{
     get
     {
        if (Matrix == null) return String.Empty;

        if (Matrix.ColumnCount >= 1 && Matrix.RowCount >= 1)
        {
           return Matrix[0, 0];
        }
        return null;
     }
 }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,在调用之前SingleElement,Matrix属性为null.但它没有返回String.Empty,它转到第二个if语句.

这是我的立即窗口说: 即时窗口

我有点困惑.我做错了什么?

c#

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

可以在c#中组合两个动作吗?

我只是在玩Actions来提取lambda表达式.

我有一个布尔变量,并根据它的值,我的lambda体应该是不同的.

但是,在这种特殊情况下,差异只是调用另一种不改变返回类型的方法.这就是我所拥有的:

Action<MyType> myLambda;

if (myBooleanCondition)
{
     myLambda = x => x.ChangeBehavior();
}
else
{
     myLambda = x => x.ChangeBehavior().ChangeSize();
}
Run Code Online (Sandbox Code Playgroud)

是否可以将两个lambda定义减少/合并为一个以使其更优雅?

这个项目使用C#4.0,但如果在新版本中进行了简化,请告诉我.

c# lambda

4
推荐指数
2
解决办法
621
查看次数

标签 统计

c# ×2

lambda ×1