代码之家  ›  专栏  ›  技术社区  ›  Iain Fraser

初学者:用C#扩展一个类,我做错了吗?

  •  1
  • Iain Fraser  · 技术社区  · 16 年前

    FileVersion

    文件版本 s包含在a中 File

    string URL = "/files/"+file.id.toString()+"/"+file.fileVersion.Last().filename;
    

    现在,对于我正在处理的一个特定控件(专门处理文档文件),能够将URL与所有其他控件一起存储是有意义的 文件版本 供以后使用的信息。所以我决定创建自己的类,名为 DocumentVersion 其延伸 文件版本 。它看起来是这样的:

    public partial class DocumentVersion : FileVersion
    {
        public DocumentVersion() : base() { }
        public string link;
    }
    

    文件版本 文档版本

    DocumentVersion dv = ((DocumentVersion)fileversion);
    

    “CoA。文档版本”。

    我的猜测是,这是因为我试图在与原始名称空间不同的名称空间中扩展一个类,但就像我说的,OOP对我来说相对较新,所以我可能错了。

    6 回复  |  直到 16 年前
        1
  •  5
  •   Brian Agnew    16 年前

    FileVersion DocumentVersion

    .

    文档版本 文档版本 base() .

    文档版本 文件版本 文件版本 ,以及所需的其他数据。在这种情况下,这可能更合适。

    例如(用OO术语来说,这是

    public class DocumentVersion {
       private FileVersion fv;
       private String url;
       public DocumentVersion(FileVersion fv, String url) {
          this.fv = fv;
          this.url = url;
       }
    }
    

    看 here

        2
  •  4
  •   Heinzi    16 年前

    FileVersion 到 DocumentVersion

    和


    静态类型

        3
  •  1
  •   Arnis Lapsa    16 年前

    你不能做爸爸( FileVersion DocumentVersion ).

    (FileVersion)文档版本//有效

        4
  •  1
  •   bniwredyc    16 年前
    DocumentVersion dv = null;
    
    if (fileversion is DocumentVersion)
    {
        dv = fileversion as DocumentVersion;
    }
    
        5
  •  1
  •   Chris S    16 年前

    FileVersion DocumentVersion 是)。

    一种解决方法是复制构造函数中的字段 文档版本

    public partial class DocumentVersion : FileVersion
    {
        public DocumentVersion() : base() { }
    
        public DocumentVersion(FileVersion version) : this()
        {
            this.id = version.id;
            // etc.
        }
    
        public string Link { get;set; }
    }
    

    文档版本 文档版本 文件版本

    public static void New(FileVersion version)
    {
        this.id = version.id;
        // etc.
    }
    

    文件版本 文档版本

    public class DocumentVersion
    {
        public FileVersion FileVersion { get;set; }
        public string Link { get;set; }
    }
    
        6
  •  0
  •   Julien Poulin    16 年前

    FileVersion DocumentVersion extension method 文件版本 :

    public static string GetLink(this FileVersion fileVersion) {
      return "/files/"+fileVersion.id.ToString()+"/"+fileVersion.FileVersion.Last().Filename
    }