小编bed*_*edo的帖子

为什么将类型对象的动态类型转换为抛出空引用异常的对象?

我有以下功能:

public static T TryGetArrayValue<T>(object[] array_, int index_)
{
    ... //some checking goes up here not relevant to question

    dynamic boxed = array_[index_];
    return (T)boxed;
}
Run Code Online (Sandbox Code Playgroud)

当我用以下方式调用它时,

object a = new object();
object v = TUtils.TryGetArrayValue<object>(new object[] { a }, 0);
Run Code Online (Sandbox Code Playgroud)

(T)boxed 抛出空引用异常.

除了"对象"之外,我放在那里的任何其他类型,它完全正常.
任何想法是什么,为什么它抛出异常?

编辑:我使用动态的原因是为了避免在转换类型时出现异常,例如:

double a = 123;
int v = TUtils.TryGetArrayValue<int>(new object[] { a }, 0);
Run Code Online (Sandbox Code Playgroud)

.net c# dynamic nullreferenceexception

62
推荐指数
3
解决办法
2131
查看次数

在aurelia中使用路由器时如何设置/读取查询字符串?

使用aurelia.io框架路由器时,读取和设置查询字符串的首选方法是什么?

例如,在网址中: http://www.myapp.com/#/myroute1/?s=mystate

我如何阅读和设置?s=mystate网址的一部分并让aurelia路由器正确导航并记住该状态,这样每当我到达我的route1viewmodel时,我都可以读取该状态变量并对其执行某些操作?

javascript query-string aurelia aurelia-navigation aurelia-router

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

Rx主题中观察者的数量

使用Rx,获取主题中当前观察者数量的最佳方法是什么?

我有一个场景,我想发布一条消息,但只有在有观察者的情况下.如果没有观察员,我需要做点别的事情.

为了解决这个问题,我所做的是创建自己的ISubject实现并公开内部IObserver集合的计数.我确信必须有一个开箱即用的方式,我只是不完全熟悉Rx提供的东西.

谢谢!

system.reactive

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