首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于C# Windows的C#扩展方法

基于C# Windows的C#扩展方法
EN

Stack Overflow用户
提问于 2009-06-10 13:44:03
回答 5查看 1.6K关注 0票数 5

扩展方法在CE框架上也可用吗?我有一个用于string的扩展方法,它在windows窗体项目中工作得很好,但是它不会在PocketPC应用程序中构建。

我认为这是一件很容易找到的事情,但是我无法找到任何关于PocketPC上的扩展方法的信息。

编辑: Ooops这是我的错误。我在Visual 2008中编写了扩展方法,但是PocketPC项目是在Visual 2005中编译的,我没有意识到这一点。嗯,那是我生命中的一个小时,我再也不会回来了。不管怎样,谢谢大家的回答。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-10 13:57:52

想澄清一下这里的混乱。扩展方法是编译器的一个特性,而不一定是框架的特定版本。因此,如果编译器的版本同时支持扩展方法和平台,则可以在任何平台上使用扩展方法。

C# 3.0编译器可以将目标降到2.0框架,并支持扩展方法,因此它们应该可以在紧凑的框架上使用。

框架实际上为扩展方法提供的唯一东西是ExtensionAttribute。但是,这没有任何与其相关的功能,如果应用程序不可用,则可以由它定义。这是我写的一篇关于这个主题的博客文章

  • http://blogs.msdn.com/jaredpar/archive/2007/11/16/extension-methods-without-3-5-framework.aspx
票数 7
EN

Stack Overflow用户

发布于 2009-06-10 13:53:32

是的,它们在CF 3.5中得到支持。如果您使用的是CF2.0,则需要定义ExtensionAttribute,然后它们才能工作。

代码语言:javascript
复制
    // this is a definition of a 3.5 class for use in 2.0.  If we upgrade to target CF3.5, we will need to remove it...
    namespace System.Runtime.CompilerServices 
    { 
        public class ExtensionAttribute : Attribute { } 
    }

namespace TestExtension
{
    public static class Extensions
    {
        public static int TestMethod(this string value)
        {
            return value.ToString();
        }
    }
}
票数 3
EN

Stack Overflow用户

发布于 2009-06-10 13:48:40

根据这篇博客文章,它们在Compact中得到了支持。但是,我预计他们需要版本3.5。你用的是哪个版本?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/975697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档