扩展方法在CE框架上也可用吗?我有一个用于string的扩展方法,它在windows窗体项目中工作得很好,但是它不会在PocketPC应用程序中构建。
我认为这是一件很容易找到的事情,但是我无法找到任何关于PocketPC上的扩展方法的信息。
编辑: Ooops这是我的错误。我在Visual 2008中编写了扩展方法,但是PocketPC项目是在Visual 2005中编译的,我没有意识到这一点。嗯,那是我生命中的一个小时,我再也不会回来了。不管怎样,谢谢大家的回答。
发布于 2009-06-10 13:57:52
想澄清一下这里的混乱。扩展方法是编译器的一个特性,而不一定是框架的特定版本。因此,如果编译器的版本同时支持扩展方法和平台,则可以在任何平台上使用扩展方法。
C# 3.0编译器可以将目标降到2.0框架,并支持扩展方法,因此它们应该可以在紧凑的框架上使用。
框架实际上为扩展方法提供的唯一东西是ExtensionAttribute。但是,这没有任何与其相关的功能,如果应用程序不可用,则可以由它定义。这是我写的一篇关于这个主题的博客文章
发布于 2009-06-10 13:53:32
是的,它们在CF 3.5中得到支持。如果您使用的是CF2.0,则需要定义ExtensionAttribute,然后它们才能工作。
// 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();
}
}
}发布于 2009-06-10 13:48:40
根据这篇博客文章,它们在Compact中得到了支持。但是,我预计他们需要版本3.5。你用的是哪个版本?
https://stackoverflow.com/questions/975697
复制相似问题