2010-06-25 40 views
3

我现在有一个看起来像这样的功能:最简单的方法一个新的类

public void AnimateLayoutTransform(object ControlToAnimate) 
{ 
//Does some stuff 
} 

我用这个功能在很多不同的项目,所以我想它是非常可重用。所以现在我有一个cs文件,封闭在一个命名空间和类:

namespace LayoutTransformAnimation 
{ 
    public class LayoutAnims 
    { 
     public void AnimateLayoutTransform(object ControlToAnimate) 
     { 
      //Do stuff 
     } 
    } 
} 

这样做的问题是,要使用这一功能在给定的项目,我必须这样做

new LayoutTransformAnimation.LayoutAnims().AnimateLayoutTransform(mygrid); 

这似乎很多重复使用单个函数的工作。有没有办法,至少在不创建类的新实例的情况下使用该函数?类似于我们如何在不创建新的double的情况下Double.Parse()

回答

10

一种选择是让一个正常的静态方法。一个选择 - 如果你正在使用C#3.0或更高版本 - 是使它成为扩展方法

public static class AnimationExtensions 
{ 
    public static void AnimateLayoutTransform(this object controlToAnimate) 
    { 
     // Code 
    } 
} 

然后,你可以这样写:

mygrid.AnimateLayoutTransform(); 

您可以指定的类型控制动画比“对象”更精确?那样会更好......例如,你是否真的只能动画UIElement的实例?也许不......但如果你可以更具体,这将是一个好主意。

5

你可以把它变成一个静态方法。

MSDN Example

+0

可能是最好的,包括样品静态方法/类? – Mauro 2010-06-25 15:09:18

2
namespace LayoutTransformAnimation 
{ 
    public class LayoutAnims 
    { 
     public static void AnimateLayoutTransform(object ControlToAnimate) 
    { 
     //Do stuff 
    } 
} 

}

LayoutTransformAnimation.LayoutAnims.AnimateLayoutTransform(something); 
3

我发现它有一个静态的util类,它们可以在项目命名空间中使用静态方法。

public static class YourUtilsClass 
{ 

    public static Void YourMethod() 
    { 
     //do your stuff 
    } 

} 

你可以把它像这样:YourUtilsClass.YourMethod()

相关问题