我正在寻找相当于C#语言的Objective-c的类别。C#是否与Objective-c的类别相同?
9
A
回答
14
您不能添加方法一类,但是你可以使用扩展方法来实现类似的效果。
使静态类,它有一个静态方法。静态方法的第一个参数被标记为“this”,并且该方法被修饰为具有参数类型的类。
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
此方法将在类型为String的所有实例上可用。但是,您仍然需要通过您的使用获得扩展课程。
的例子是从微软获得自己的机制的文档在这里拍摄:http://msdn.microsoft.com/en-us/library/bb383977.aspx
3
不要类别可以对方法添加到现有类没有子呢?如果是这样,那么扩展方法将是C#的等价物。他们不会取代现有的方法,并受到一些限制。
5
的最接近Objective-C Categories在C#是Extension Methods。
请注意,C#是静态类型语言,不像Objective-C那样使用动态调度。这意味着方法解析在编译时间执行,而不是在运行时执行,就像您在Objective-C中习惯的那样。
相关资源:
相关问题
- 1. C#:数据类型是否与类型相同?
- 2. 相同类别
- 3. C++是否有与它们自己及其父类相同类型的子类?
- 4. 相同类别的组对象C#
- 5. Objective C - 是否可以从另一个相同类型的类别中调用类别的方法?
- 6. webapp与CMS - 是否相同
- 7. 检查所有项目是否具有相同的类别
- 8. 在SystemVerilog中,虚拟类是否与抽象类相同?
- 9. 是否有与Windows相同的EDQUOT?
- 10. 是否有与Petapoco相同的Scala?
- 11. 是否有与iPhone SDK相同的CoreText?
- 12. Octave与iPython的“!”是否相同?
- 13. 是否有与Ruby相同的Stylecop?
- 14. 是否有与插件中的Bootstrap类相同的内容
- 15. 检查函数是否与C中的typedef函数类型相同?
- 16. 是否有与MISRA C相当的Java?
- 17. 是否有与IFNULL相当的Objective-C?
- 18. 打字稿/ javascript是否具有与C#相同的@“\”?
- 19. C++是否具有与Python相同的__setitem__
- 20. 是否存在与“glob”类型模式相同的java.util.regex?
- 21. 元数据类是否与asp.net MVC中的ViewModel相同?
- 22. 绑定的ObjectiveC类的C#问题
- 23. 使用Quartz&C与ObjectiveC加载图像有什么区别?
- 24. 在不同类别的相同实例C++
- 25. 是否存在与Java Selector类相当的C#?
- 26. 类别和子类别在相同或不同的表?
- 27. 使用Pattern.LITERAL是否与Pattern.quote相同?
- 28. VFP uniqueidentifier是否与Guid相同?
- 29. int是否与unsigned或signed相同?
- 30. 是否缩进与Whitespacing相同?
如果你那是什么细说,你可能会得到更多的答复,因为人可以帮助你在不知道的Objective-C – 2011-04-07 10:41:07
@Daniel:现有的答案可能会让游戏离开,但由于我对C#的了解不多,并且可能有所帮助:在Objective-C中,类别在运行时向类中添加新方法。所以你不是继承类(如果对象是由你不能改变的代码创建的话,这很有用),只是增加了功能。在它之下是可以实现的,因为在Objective-C中动态查找所有的方法调用;您可以随时添加一些额外的方法 - 无论是通过一个漂亮的,语法上干净的类别,或者通过将C级接口下载到运行时。 – Tommy 2011-04-07 11:56:03
@Tommy:谢谢你的解释。 – 2011-04-07 11:59:13