小编shi*_*dan的帖子

如何在C#中覆盖List <T>的Add方法?

我目前正在寻找自己的集合,这就像一个常规列表,除了它只能容纳10个项目.如果在列表中已有10个项目时添加了项目,则在添加新项目之前将删除第一个项目.

我想要做的是创建一个扩展的类,System.Collections.Generic.List<T>然后修改Add(T item)方法以包含在必要时删除第一个项目的功能.

c# generics collections inheritance

34
推荐指数
6
解决办法
7万
查看次数

如何使用具有通用参数的结构类型?

我有两个案例类

case class StringCaseClass(argument: String)

case class IntCaseClass(argument: Int)
Run Code Online (Sandbox Code Playgroud)

我想定义一个结构类型,它将匹配这两个的伴随对象

type HasApply1 {
  def apply[A, R](argument: A): R
}
Run Code Online (Sandbox Code Playgroud)

这将编译正常,但当我尝试使用它这样

def method(caseClass: HasApply1) {
  // whatever
}

method(StringCaseClass)
Run Code Online (Sandbox Code Playgroud)

我会得到一个编译器错误

found   : StringCaseClass.type
required: WithApply1
            (which expands to)  AnyRef{def apply[A, R](string: A): R}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个?如果我重新定义结构类型以具有A和R的具体类型,它将正确编译,但后来我失去了灵活性

generics scala structural-typing

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

在Graphite中按时间间隔拆分计数度量值

我有一个计数器指标,我会打电话给 a.metric.count

当绘制正常情况时,这将是一个不断增加的向上线,这不是那么有用.我想要的是显示每小时发生的事件数量.

graphite

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