只是一个想法.
在C#中使用可选类型参数不是很有用吗?
这会让生活更简单.我厌倦了多个具有相同名称但类型参数不同的类.另外VS不支持这个非常vell(文件名):-)
例如,这将消除对非通用IEnumerable的需求:
interface IEnumerable<out T=object>{
IEnumerator<T> GetEnumerator()
}
Run Code Online (Sandbox Code Playgroud)
你怎么看?
我绝对赞成。
我目前正在为不同的场景编写辅助方法,在这些场景中我想传递对类的不同成员和方法的引用。例如,为了实现此目的,我将 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)
就我而言,它将避免大量代码重复......
| 归档时间: |
|
| 查看次数: |
5477 次 |
| 最近记录: |