在Java中,文件名必须是该java文件中定义的公共类名.C#有类似的要求吗?我可以在A.cs文件中定义一个公共B类吗?谢谢,
在webforms/winforms生成的代码场景之外是否有很好的使用部分类?或者这个功能基本上是支持吗?
好的,所以我们内部有一个实用工具,可以从我们的数据库表和视图中生成业务模型类,类似于(但不完全像)ORM.在维护它时,我发现模式中的数据可能不会发生很大的变化.但是,功能可能会.我们可能希望在未来添加其他功能.我们可能想要生成一些功能,我们可能想要扩展它.
我们正在构建的类将驻留在类库中,供其他库和应用程序使用.那里没什么大惊喜.但这里的难点是如何设计生成的类,以便在重新生成类时尽可能少地破坏代码.例如,如果代码已添加到属性(表示数据库表中的列),我们不希望丢失它.
因此,有两种方法可以想到:
经典继承,整个过程在一个"单片"类中完成,消费者可以自由地覆盖基础实现.然而,这有时会变得棘手,并经常引入铸造头痛.此外,如果派生类不小心并忘记调用基类功能,事情很快就会出错.
部分课程.在此方案中,我们将业务对象分成不同的部分:属性(映射到列)和行为.行为甚至可以进一步细分为生成的行为和自定义行为.正如您所看到的,这种方法的问题在于其固有的复杂性.此外,还有命名问题.
以下是我的问题:当你处理这样的场景时(如果有的话),或者如果你遇到这样的场景,你会考虑哪些解决方案,为什么?
我正在寻找一种在 .NET 项目中组织单元测试的好方法。现在,我TestClass每个应用程序类都有一个,每种方法都有多个测试。尽管我习惯按其测试的应用程序类方法对TestCategory每个方法进行分类TestMethod,但查找我的测试方法变得很笨拙。
我正在考虑将我的测试类拆分为部分类 - 每个应用程序类方法一个部分类。这意味着我可以TestMethod在每个方法中拥有多个合二为一的专用文件,而无需在一个大文件中寻找它们。
这种方法有什么陷阱吗?在 .NET 和 Visual Studio 中是否有更好的方法来处理大型测试类?
编辑:我正在使用 IoC(我们在测试之外使用 Castle.Windsor 进行 DI),并且我们使用 Moq 进行模拟功能。测试用 初始化TestInitialize。
到目前为止,我看到的部分类的最大论点是自动生成的代码.
从Java的角度来说,我不明白为什么这不能简单地使用抽象类完成,不能自动生成的代码仅仅是一个抽象类protected abstract,它预计用户覆盖的方法呢?
除了自动生成的代码案例之外,我看到的每一个案例都非常罕见(编码器只是partial用作黑客),或者它也可以使用abstract已经存在的其他概念来解决.
我有一个包含许多标签的表单.
为了没有一个巨大的Form1.cs文件,我想在几个Form1_1.cs,Form1_2.cs等文件中拆分方法.
我找不到正确的方法.我可以在几个文件中重复相同的命名空间和表单吗?我是否需要重复所有compliler指令,如"使用"或仅重复我将在该部分使用的指令?
例:
using System.Data.OleDb;
namespace Mine
{
    public partial class Form1 : Form
    {
...
我们非常欢迎任何帮助或建议.
先感谢您.大卫
我的viewmodel包含很多命令,它使我的viewmodel非常大.我想从viewmodel中分离出我的命令.目前,我的解决方案是为每个命令创建一个类,如下所示,
 public class TestCommand : CommandBase
{
    private MainViewModel vm;
    public TestCommand(MainViewModel vm)
    {
        this.vm = vm;
    }
    public override bool CanExecute(object parameter)
    {
        return true;
    }
    public override void ExecuteCommand(object parameter)
    {
        vm.logger.log(...);
        ...
    }
}
由于我需要在ViewModel中使用某些方法或属性,因此我必须将viewmodel作为参数传递给命令.对于这个解决方案,有两个缺点:1.项目中有很多命令文件,如果一个视图中命令的平均计数为15,则10个视图将在项目中有150个命令文件; 2.将ViewModel作为参数传递给命令需要一些属于私有的属性或方法必须更改为public; 将viewmodel传递给命令也很奇怪.
有没有其他解决方案来分离命令?