You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中带接口限定的属性实现语法叫什么?有什么作用?

语法名称

你遇到的这个C#语法官方名称为 显式接口实现。

核心含义

你的ComplexDefinition类同时实现了多个包含同名ElementC成员的接口:一个需要返回IActorCompositionLevel2类型的公开ElementC属性,另一个是泛型接口IElementC<IActorCompositionLevel1>中定义的、返回IActorCompositionLevel1类型的ElementC属性。当类实现的多个接口存在同名成员,或者你希望特定接口的成员仅在接口类型下可见时,就需要用显式接口实现来区分不同接口的同名成员。

使用规则

  • 显式实现的接口成员不能添加任何访问修饰符,它默认只有当变量被声明为对应接口类型时才可见,直接用类的实例访问时不会显示这个成员。
  • 固定语法格式为:返回值类型 接口名.成员名,你疑问的那行代码就是显式实现IElementC<IActorCompositionLevel1>接口的ElementC属性。
  • 调用规则示例:
var complexInstance = new ComplexDefinition();
// 这里调用的是你熟悉的公开ElementC属性,返回IActorCompositionLevel2类型
var level2Actor = complexInstance.ElementC;

// 只有将实例转换为对应接口类型时,才会调用显式实现的ElementC
IElementC<IActorCompositionLevel1> interfaceInstance = complexInstance;
var level1Actor = interfaceInstance.ElementC;

常见适用场景

  • 类实现的多个接口存在同名、参数列表一致但逻辑/返回类型不同的成员,此时必须用显式接口实现区分,否则会触发编译错误。
  • 需要隐藏接口成员实现:如果你不希望某个接口的成员直接暴露给类的实例调用,只允许在使用接口类型访问时生效,可以用显式接口实现隐藏实现细节。

内容的提问来源于stack exchange,提问作者monty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:09:03