那么C#5.0中的可选泛型类型参数呢?

Lar*_*sen 8 c# generics

只是一个想法.

在C#中使用可选类型参数不是很有用吗?

这会让生活更简单.我厌倦了多个具有相同名称但类型参数不同的类.另外VS不支持这个非常vell(文件名):-)

例如,这将消除对非通用IEnumerable的需求:

interface IEnumerable<out T=object>{
  IEnumerator<T> GetEnumerator()
}
Run Code Online (Sandbox Code Playgroud)

你怎么看?

Tom*_*han 3

我绝对赞成。

我目前正在为不同的场景编写辅助方法,在这些场景中我想传递对类的不同成员和方法的引用。例如,为了实现此目的,我将 asExpression<Func<TIn, TOut>>参数传递给助手(这让我可以使用 lambda 表达式访问该方法,从而保持所有内容都是强类型的)。

但是 - 我目前需要为每个不同数量的输入参数定义一个新的辅助方法,因为我需要有不同数量的通用参数。代替

HelperMethod<TIn>(Expression<Action<TIn>> arg) // Yes, C# can distinguish
HelperMethod<TOut>(Expression<Func<TOut>> arg) // these two from eachother
HelperMethod<TIn, TOut>(Expression<Func<TIn, TOut>> arg)
HelperMethod<TIn1, TIn2, TOut>(Expression<Func<TIn1, TIn2, TOut>> arg)
// etc
Run Code Online (Sandbox Code Playgroud)

我最多只能用两种方法:

HelperMethod<TIn>(Expression<Action<TIn>> arg)
HelperMethod<TOut, TIn1 = DummyType, ...>(Expression<Func<TIn1, ..., TOut> arg)
Run Code Online (Sandbox Code Playgroud)

就我而言,它将避免大量代码重复......