小编Eng*_*ock的帖子

我们应该将类,枚举和其他实体放入他们自己的文件中吗?

我和我们公司的teamlead\architect就此主题进行了讨论.

他认为,如果"通过逻辑连接的实体"放在一个cs文件中,那么理解大型项目会更容易.

我引用:

  1. "逻辑和接口以及类的整个结构可以在一个地方看到,这是一个不能反驳的论据.要看到相同的东西但是有一堆文件你需要使用工具,类图,R#用于导航等."

  2. "根据糟糕的理论,我可能会尖叫一大堆分离文件很酷,但是当谈到改变现有代码时,特别是如果你不是这个代码的作者,那么很难理解大量分散的文件.所以在论坛上,你可以写出"一个枚举文件",但实际上这种方法绝对不能用"

  3. "......至于开发人员之间的代码库分离,现在同时编辑同一个文件不是问题.合并不是问题."

我多次听说过,我们必须为每个枚举,类等创建一个.cs文件,这是最好的做法.

但我无法说服他.他说他不相信任何知名程序员,如Jon Skeet.顺便说一句,这里是Skeet对这个主题的看法哪里是定位枚举类型的最佳位置?

你怎么看?有真正的问题吗?或者这是一个品味的问题,应该由组织的编码标准来规范?

.net c# project code-organization

14
推荐指数
1
解决办法
4655
查看次数

如何合并两个内存流?

我有两个MemoryStream实例.

如何将它们合并到一个实例中?

好吧,现在我无法从一个MemoryStream复制到另一个.这是一个方法:

public static Stream ZipFiles(IEnumerable<FileToZip> filesToZip) {
ZipStorer storer = null;
        MemoryStream result = null;
        try {
            MemoryStream memory = new MemoryStream(1024);
            storer = ZipStorer.Create(memory, GetDateTimeInRuFormat());
            foreach (var currentFilePath in filesToZip) {
                string fileName = Path.GetFileName(currentFilePath.FullPath);
                storer.AddFile(ZipStorer.Compression.Deflate, currentFilePath.FullPath, fileName,
                               GetDateTimeInRuFormat());
            }
            result = new MemoryStream((int) storer.ZipFileStream.Length);
            storer.ZipFileStream.CopyTo(result); //Does not work! 
                                               //result's length will be zero
        }
        catch (Exception) {
        }
        finally {
            if (storer != null)
                storer.Close();
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

.net c# memorystream

10
推荐指数
2
解决办法
2万
查看次数

创建(创建)可重用的动态视图

Out团队希望创建可重用,可管理的视图.例如,我们希望在不同的应用程序中重用CommonPromptView(我们自己的,可自定义的对话框,我们可以隐藏"取消"按钮,设置标题,显示特定图标等).

该视图在其表面上有几个元素:TextBlocks,Buttons.我们想让它们成为一种风格.

那么,解决这个任务的最佳方法是什么?

  1. 视图可以是Window类型.
  2. 视图可以是UserControl类型.

在第一种情况下,可以通过两种方式支持样式:

  1. 元素样式引用了DynamicResources.
  2. 样式将传递给View的构造函数.

两者都不干净(在我看来).

但是如果View是UserControl,那么每次创建新app的人都必须创建一个新窗口来包含UserControl并将其绑定到DP(Style类型)正确.此外,如果UserControl拥有它自己非常方便的API(最常用操作的静态方法),对于包含UserControl的Window用户来说,这将丢失.

Update

CommonPromptView作为UserControl实现的示例.

Code-behind

 public sealed partial class CommonPromptView {
    private const int CloseViewTimeIntervalInMilliseconds = 120000;
    private DispatcherTimer timer;

    public static readonly DependencyProperty CommonPromptBorderStyleProperty = DependencyProperty.Register(
        "CommonPromptBorderStyle", typeof (Style), typeof (CommonPromptView), new PropertyMetadata(default(Style)));

    public Style CommonPromptBorderStyle {
        get { return (Style) GetValue(CommonPromptBorderStyleProperty); }
        set { SetValue(CommonPromptBorderStyleProperty, value); }
    }

    public static readonly DependencyProperty CommonPromptHeaderStyleProperty = DependencyProperty.Register(
        "CommonPromptHeaderStyle", typeof (Style), typeof (CommonPromptView), new PropertyMetadata(default(Style)));

    public Style CommonPromptHeaderStyle {
        get …
Run Code Online (Sandbox Code Playgroud)

wpf xaml wpf-controls wpf-4.0

9
推荐指数
1
解决办法
1216
查看次数

RhinoMocks是否已经死亡?

最后一次构建于2010年5月1日.

我将学习一个模拟框架,我不想学习产品会死.

.net unit-testing rhino-mocks mocking

7
推荐指数
2
解决办法
1759
查看次数

如何遍历邻接矩阵?

邻接矩阵表示任意树中节点之间的连接。

这是一个呈现无向图的邻接矩阵实例:

  1 2 3 4
1 0 1 1 0
2 1 0 1 0
3 1 1 0 0
4 0 0 0 0

该矩阵表示一个图,其中节点 1 和 2 相连,1 和 3 相连,2 和 3 相连。

如何使用这种矩阵在这样的图中暴力破解所有可能路径的组合?我的意思是只选择节点 1 是一个单独的组合。那么,比如说,1-2 是一个单独的组合。1-2-3; 3-1-2。但是 1-2-3-1 是不可能的,因为重复选择了同一个节点。

那么如何使用这些规则对所有组合进行暴力破解呢?

我更喜欢 C#、C++ 或 Java 语言示例)

algorithm tree graph-algorithm

6
推荐指数
1
解决办法
8790
查看次数

MVVM 中 ViewModel 的真正目的是什么?

我和 teamlead 讨论过这个话题,从他的角度来看,我们可以只使用绑定和命令省略 ViewModel,因为我们可以在没有 VM 的情况下使用自动化或我们自己开发的 UI 测试机制来测试 UI 行为(基于对视图的自动点击)。那么,如果没有真正的好处,我为什么要产生“冗余”实体?此外,自动化集成测试看起来比 VM 测试更具指示性。因此,我们似乎可以混合使用 VM 和模型。

更新: 我同意混合虚拟机和模型将数据模型和数据转换规则带入单个 .cs 以在视图中表示它。但如果这只是一个好处 - 我不想为每个视图创建一个 VM。

那么你知道VM的哪些优点呢?

wpf mvvm viewmodel

6
推荐指数
1
解决办法
3525
查看次数

进程间通信选项

我需要在一个应用程序内订阅其他应用程序公开的事件.我注意到许多人认为使用WCF命名管道是最佳实践.我是对的,如果我选择WCF命名管道,我将不得不使用IIS?

顺便说一句,我一般有什么选择?

c# wcf named-pipes inter-process-communicat

6
推荐指数
1
解决办法
8682
查看次数

任何人都可以提供Conductor <T> .Collection.AllActive用法的任何简单工作示例吗?

这有点奇怪,但我真的无法在任何地方找到一个有效的例子.

顺便说一下,如果这很重要的话,我正在使用ViewModel-first方法(在WPF中).

先感谢您.

wpf caliburn.micro

6
推荐指数
1
解决办法
1715
查看次数

长时间运行的应用程序变慢

有一个由三个可执行文件组成的应用程序.其中之一 - 调度程序,运行其他可执行文件.调度程序在完成时从可执行文件接收代码.也就是说,只有调度程序始终在运行,其他可执行文件会卸载并再次加载.该应用程序在服务点运行并全天候工作.在第一次启动时,应用程序运行得很快.在一天结束时,应用程序运行速度非常慢.这种行为可能是什么原因?

.net c# memory memory-leaks appdomain

2
推荐指数
1
解决办法
3116
查看次数

检查 SQL Server 中的视图

在 PostgreSQL 中,我们有一个“WITH LOCAL CHECK OPTION”语句来强制执行在 WHERE 子句中实现的检查。

例如,

CREATE VIEW HeavyOrders AS
SELECT *
FROM Orders
WHERE Weight > 100
WITH LOCAL CHECK OPTION;
Run Code Online (Sandbox Code Playgroud)

现在,如果我们尝试插入一个 raw ,Weight < 100我们会得到一个错误:

INSERT INTO HeavyOrders(x, y, z, Weight)
VALUES('a', 'b', 'c', 80);
Run Code Online (Sandbox Code Playgroud)

有没有办法对 VIEW 执行这样的检查?

sql t-sql sql-server

2
推荐指数
1
解决办法
44
查看次数