在没有实例化新类的情况下重用函数的最简单方法

我目前有一个看起来像这样的function:

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.Parse()如何创建一个新的double

一种选择是使其成为常规静态方法。 另一种选择 – 如果您使用的是C#3.0或更高版本 – 是使其成为扩展方法

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

然后你可以写:

 mygrid.AnimateLayoutTransform(); 

你能指定控件的类型来比“对象”更精确地制作动画吗? 那会更好……例如,你能真正为UIElement实例制作动画吗? 也许不是……但如果你可以更具体,那将是一个好主意。

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

MSDN示例

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

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

您可以像这样调用它: YourUtilsClass.YourMethod()

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

}

 LayoutTransformAnimation.LayoutAnims.AnimateLayoutTransform(something);