I.我试图建立和构建Application
当我尝试构建应用程序时,它引发以下错误: Assets/Workshop/Scripts/TextureLoader.cs(114,31):error CS1105:`TextureLoader.GetFilesWithExtensions(这个DirectoryInfo,params string[])':Extension必须声明为静态
// Gets the list of files in the directory by extention and filters for our specified ones (images)
public IEnumerable<FileInfo> GetFilesWithExtensions (this DirectoryInfo dir, params string[] extensions) {
IEnumerable<FileInfo> files = dir.GetFiles();
return files.Where(f => extensions.Contains(f.Extension));
}
public bool isFinishedLoadingFirstTexture() {
return mFinishedFirstTexture;
}我已经将其更改为标题中的公共静态类.
发布于 2017-02-23 12:12:04
类是静态的,对方法没有多大作用。您需要使您的方法是静态的,这样扩展才能工作!
public static IEnumerable<FileInfo> GetFilesWithExtensions (this DirectoryInfo dir, params string[] extensions) {
IEnumerable<FileInfo> files = dir.GetFiles();
return files.Where(f => extensions.Contains(f.Extension));
}如果需要另一个例子,我编写了一个扩展方法here!
发布于 2017-02-23 12:12:26
我要做一个扩展方法,类必须是public和static。
函数也必须是public和static。你错过了这部分。
public static class TextureLoader
{
public static IEnumerable<FileInfo> GetFilesWithExtensions(this DirectoryInfo dir, params string[] extensions)
{
IEnumerable<FileInfo> files = dir.GetFiles();
return files.Where(f => extensions.Contains(f.Extension));
}
}发布于 2017-05-24 16:24:52
这样修改您的代码,错误就会消失。
private IEnumerable<FileInfo> GetFilesWithExtensions(DirectoryInfo dir, string[] extensions)
{
IEnumerable<FileInfo> files = dir.GetFiles();
return files.Where(f => extensions.Contains(f.Extension));
}https://stackoverflow.com/questions/42415278
复制相似问题