在另一个StackExchange问题中,我注意到有人在使用此原型:
void DoSomething<T>(T arg) where T: SomeSpecificReferenceType
{
//Code....
}
请记住,只有一个类型约束(SomeSpecificReferenceType
),这样写而不是简单地有什么区别和好处?
void DoSomething(SomeSpecificReferenceType arg)
{
//Code....
}
在这两种情况下,arg
都将进行编译时类型检查。在这两种情况下,方法的主体都可以安全地依赖arg
编译时已知的特定类型的知识(或作为其后代)。
这是开发人员在学习普通继承之前热衷于泛型的一种情况吗?还是有一个合理的理由解释为什么这样写方法签名?
我几乎不了解C#,所以这只是一个猜测,但这不启用更有效的静态分发而不是动态分发吗?
—
安东·巴科夫斯基