【发布时间】:2010-10-09 07:55:28
【问题描述】:
我正在开发一组实现通用接口的类。我的库的使用者应该期望这些类中的每一个都实现一组特定的静态函数。无论如何我可以装饰这些类,以便编译器能够捕获其中一个函数未实现的情况。
我知道它最终会在构建消费代码时被捕获。而且我也知道如何使用一种工厂类来解决这个问题。
只是想知道是否有任何语法/属性需要类上的静态函数。
Ed删除了“界面”一词以避免混淆。
【问题讨论】:
-
请原谅我的好奇心,但我不禁想知道你为什么需要这样的功能?静态方法有什么普通实例(非静态)方法没有的?我什么都没有想到。想为您的问题分享一些背景信息吗?
-
您不需要实例来调用静态方法。所以它们很适合用作工厂方法,例如反序列化方法。
-
@Dan:另一个用途是在不知道您是在处理实例还是类型(或稍后更改)的情况下使用接口的能力。考虑一个代表某种单例列表的静态类——作为一个适当的列表,它应该实现
IList<T>。当然,在静态类中存储实现IList<T>的类的实例的解决方法是可行的(我知道 C# 目前只允许这种方式),但是直接将类声明为静态实现的能力接口会删除不必要的间接级别。
标签: c# .net interface static-methods