c# - 如何简化我的代码?

标签 c# silverlight

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

在 stackoverflow 和其他在线网站上阅读了许多问题和答案后,我听从了很多张贴者的建议:我为一年前复制和粘贴的东西创建了类、过程等;我创建了逻辑图表来找出复杂的功能;确保没有疯狂的隐藏字符(使用制表符而不是空格);和其他一些东西;在必要的地方发表评论(我有很多评论)。

我的应用程序由 4 个水平放置的图 block 组成,每个图 block 都加载了用户控件。您可以随时加载一到四个切片。如果您加载了一次切片,该切片会占据整个画板...如果您加载了 2 个,则每个占据一半,3 个占三分之一,4 个占四分之一。

这些切片中的每一个都代表(为了这个例子)一个灯光控制。每个切片都有 3 个 slider 控件。现在,当我对 slider 的功能进行编码时,我在公共(public)函数内使用了一个 switch/case 语句,该函数将在指定的切片/ slider 上运行命令。这造成了一些重复的代码,但我没有办法解决它,因为每个切片的名称都不同。所以我会做 slice1.my.commands(); slice2.my.commands();等等

我的问题是如何进一步清理我的代码? (遗憾的是我无法发布我的任何代码)。有什么方法可以从我的代码中删除这种重复?

最佳答案

您需要的是与您的 friend Strategy 模式的接口(interface)。例如:

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();
    }
} 

关于c# - 如何简化我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2509264/

相关文章:

c# - 模型和 View 模型之间的区别

c# - System.Core 未添加到对程序集的引用

c# - 关闭和清理 Socket 连接的正确方法是什么?

c# - MongoDb 使用新的异步方法创建存储库模式

c# - 从 JavaScript 访问 Silverlight 3.0 应用程序

javascript - 用于基于信息亭的应用程序的 HTML 5/Javascript

c# - 如何设置默认数据类型

java - C#相当于Java的FloatBuffer/ShortBuffer?

c# - MVC4 Razor 中文件上传的空异常

c# - C# 中的 PDF 审阅器(ASP.NET/Silverlight?)