一个让我意识到了一个问题的优雅解决方案。这些结构都是相同的,但是现在您可以在编译器级别强制执行概念类型。我必须相信我传递的是正确的东西;而且我相信开发人员(例如我)知道以下两者之间的区别:
function GetFilenames其中: TFullPath = type string;
TFolderOnly = type s
我有一个泛型类型的T数组,我想检查它的长度是否为0。但是,我做了一个错误,而不是Array.Length is 0,而是输入了Array is 0。当我注意到这个错误时,我想知道为什么它没有给我一个编译时错误,当我使用任何具体类型的数组,比如string、int、object,甚至dynamic时,都会出现编译时错误。显然,无论数组的底层类型是什么,数组都不能是<
具体来说,匿名函数F与委托类型D兼容,条件是:如果F不包含匿名函数签名,则只要D的参数没有out参数修饰符,则D可以具有任何类型的零或多个参数。
namespace DelegateAnonymousFunctionExample public delegate void D(int i, int b);class Program