繁体   English   中英

无法创建抽象类或接口的实例,但它不是抽象类,也不是接口?

[英]Cannot create an instance of the abstract class or interface, but it is not an abstract class and it's not an interface?

我有两个类,它们都不是抽象的,也不是接口。

IFileInfoClass:

 public class IFileInfo
 {
    #region Class Variables
    /// <summary>The file name.</summary>
    private string fileName = String.Empty;
    /// <summary>The file path.</summary>
    private string filePath = String.Empty;
    /// <summary>The date time stamp modified.</summary>
    private DateTime dateTimeStampModified = DateTime.Now;
    #endregion Class Variables

    #region Constructors
    /// <summary>Initializes a new instance of the <see cref="IFileInfo"/> class.</summary>
    public IFileInfo() { }
 ...
 //Some Public Properties and another constructor...ect...
 ...
 }

然后,在调用类中,我会像这样:

 public IObservable<IFileInfo> GetFilesList()
    {
        IObservable<IFileInfo> files = new IObservable<IFileInfo>(); //ERROR HERE
    }

但是,当我去编译时,我得到一个错误:无法创建抽象类或接口的实例

 'System.IObservable<MyNameSpace.Models.IFileInfo>'

但这不是一个抽象类,也不是一个接口……那有什么用呢? 创建该类的IObservable集合是否使它抽象化?

仅供参考:IObservable来自MVVM-Light Galasoft。

我的意思是我知道我无法创建抽象类或接口的实例,因为抽象类和接口不执行任何操作,也不应该执行任何操作,但这不是我要在此处进行的操作! 我想念什么?

一段历史,我确实尝试将其创建为FileInfo类的实现,这要归功于其他站点的其他建议,然后我发现微软当然已经将其变成一个密封的类,这很有意义,对此感到沮丧也许。

这就是为什么我决定只从FileInfo删除继承并将数据直接烘焙到我自己的类中的原因,这很好,如果它仍然不认为这是从我实际上不是从类继承的某种方式从任何继承。 实际上,我认为我现在已经克服了这一障碍。 并不是说我正在尝试从密封类中继承。

但是说真的,我只是在这里打转,有什么想法吗?

提前致谢!

编译器是正确的,因为IObservable<T>是一个Interface而不是一个Class,因此无法实例化。

有关此界面的更多信息,您可以阅读以下内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM