首页 > 解决方案 > 实现接口的 C# Access 类成员

问题描述

这可能很简单,但我是接口的新手,但在阅读和观看了一些教程后,我了解到它们的强大功能,因此我尝试学习如何使用它们。所以这是我的问题:

我有一个接口 IDocument 和一个实现此接口 (IDocument) 的类 PurchaseRequest

该类有 2 个变量和 1 个方法,问题是我无法访问其他地方。

这是Iterface:

public interface IDocument
{
    int Id { get; set; }
}

这是实现 IDocument 接口的类:

public class PurchaseRequest: IDocument
{
    public int Id { get; set; }

    public int docNumber { get; set; }
    public int docRevision { get; set; }
    
    public void GenerateId()
    {
    }

}

这是我试图访问类成员的主要方法,但它没有显示在智能感知中,并且在代码下给了我错误行。

static void Main(string[] args)
{
    IDocument pr = new PurchaseRequest();
    // I can access this
    pr.Id = 0;
    // but I can't access those members
    /*
    pr.docNumber = 1;
    pr.docRevision = 0;
    pr.GenerateId();
    */

    Console.WriteLine("Press ANY key to exit");
    Console.ReadKey();

}

标签: c#interface

解决方案


当您将类实例转换为另一种类型(实现的接口或继承的类)时,它会隐藏在该另一种类型中未指定的所有方法、字段和属性。


推荐阅读