在没有实例化新类的情况下重用函数的最简单方法
我目前有一个看起来像这样的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);