c# - 实现接口的 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();
}
解决方案
当您将类实例转换为另一种类型(实现的接口或继承的类)时,它会隐藏在该另一种类型中未指定的所有方法、字段和属性。
推荐阅读
- python - 如何从字典创建数据框
- logging - 如何从 splunk 下载原始日志文件
- c# - 使用 Range.PasteAndFormat c# 时粘贴项目的顺序
- java - Java 代码生成中用于包的 Swagger-CodeGen 标记
- sql-server - 通过链接服务器从 SQL 服务器调用带有输出参数的 Oracle 存储过程
- java - 你如何使用'''public static void main(double[] args)'''中的变量?
- swift - swift中的多个if let和OR条件
- apache-kafka - 与 Kafka 连接器通信
- three.js - ThreeJS:第一次着色器尝试 - 混合两个纹理
- javascript - 如何使用 PubNub 在服务器端(Node.js)监听客户端消息?