c# – 如何简化代码?

我刚刚在C#/ Silverlight中创建了我的第一个主要应用程序.最后,总行数超过12,000行代码.考虑到这是一个php / javascript应用程序的重写,我创建了2年,超过28,000行,我实际上为我的成就感到自豪.

在stackoverflow和其他网站上阅读了很多问题和答案之后,我遵循了许多海报的建议:我创建了一些课程,程序等,这些都是我一年前复制和粘贴的内容;我创建了逻辑图表以找出复杂的功能;确保没有疯狂的隐藏字符(使用标签代替空格);和其他一些事情;必要时发表评论(我有很多评论).

我的应用程序包含4个水平布局的图块,用户控件加载到每个图块中.您可以随时加载一到四个切片.如果你有一次切片加载,切片占用整个画板…如果你有2个加载,每个占用一半,3个三分之一,4个四分之一.

这些切片中的每一个代表(为了该示例)光控制.每个切片中都有3个滑块控件.现在,当我编写滑块的功能时,我在公共函数内部使用了一个switch / case语句,该语句将在指定的切片/滑块上运行命令.这使得一些重复的代码,但我看不到它,因为每个切片的命名不同.所以我会做slice1.my.commands(); slice2.my.commands();等等

我的问题是如何进一步清理我的代码? (可悲的是我无法发布任何代码).有没有办法从我的代码中取消这个重复?

解决方法:

你需要的是与你的朋友的战略模式的接口.例如:

public interface ISlice 
{
    public Slider Slide {get;set;}
}

public class Slice1 : ISlice 
{
    public Slider Slide { get; set; }
}

public static class SliceSlider
{
    public static void DoSomethingCoolWithTheSliceSlide(ISlice slice) 
    {
        slice.Slide.LookitMeIAmLearningDesignPatterns();
    }
} 

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...