是否可以声明方法的返回类型,例如IList小于您在内部定义的方法,例如List?它会编译运行吗?
protected static IList<String> GetJobFiles(String folder, String fileExtension)
{
List<String> jobFiles = new List<String>();
if (System.IO.Directory.Exists(folder))
{
string[] files = Directory.GetFiles(folder, fileExtension);
// Check if for matching files
if (files.Length > 0)
{
// add the files to our list collection
jobFiles.AddRange(files);
}
}
return jobFiles;
}
Run Code Online (Sandbox Code Playgroud)
这不仅是好的,而且是良好的实践以及将接口作为抽象的全部观点.请参阅LSP维基百科.
它允许您使用任何实现者IList<T>(因此,不仅仅是List<T>,如果您想要更改内部实现).
至于"它会编译运行"的问题 - 答案是肯定的,但是,我鼓励你自己尝试.您将比在此发布更多,更快地了解...
正如@Dan Tao评论,试着自己,但要确认(无论是在这里还是与有经验的同事).