0

我有一个用 VB.net 编写的基类,我在我的 C# 项目中使用它。这个基类有一些属性,我必须在我的项目中赋予它们价值。我在访问这些属性之一时遇到问题。如下:

这在基类中:

Public MustInherit Class FTPUploaderBase
{

 Private _protocol As FTPProtocol

  Protected Property Protocol() As FTPProtocol
    Get
        Return _protocol
    End Get
    Set(ByVal Value As FTPProtocol)
        _protocol = Value
    End Set
End Property



 Protected Enum FTPProtocol
    FTP = 1 'Standard FTP (port 21)
    SFTP = 2 'Secure FTP over SSH (port 22)
    FTPS = 3 'Secure FTP over Implicit SSL (port 990)
    FTPES = 4 'Secure FTP over Explicit SSL (port 21 - to forward to 443)
End Enum

 }

这是从该基类驱动的我的 C# 类:

 public class FTPUploadeClass:FTPUploader.FTPUploaderBase
{

 public FTPProtocol Protocol
  {
      get
      {
          return base.Protocol;
      }

      set
      {  
          base.Protocol = value;
      }

  }
    }

它在协议上显示此错误:不一致的可访问性:属性类型“FTPUPloaded.FTPUplodedBase.FTPProtocol”比属性“我的基类名称”更难访问

解决方案:我在我的 C# 类中更改了属性的名称,它可以工作

4

2 回答 2

1

枚举是有原因的protected吗?

只做FTPProtocol枚举public

此外,派生类中的属性不应与基类命名相同。因此,将 C# 派生类中的属性重命名为Protocol.

于 2013-07-11T18:29:51.113 回答
0

您不能声明public具有该类型的属性,FTPProtocol因为该类型本身对任何不是从基类继承的类都是不可见的。

为了使它起作用,将枚举的可见性更改为public或创建第二个枚举,该枚举映射到第一个枚举(但是是public ).

于 2013-07-11T18:52:53.197 回答