相关疑难解决方法(0)

为什么/何时应该在.net中使用嵌套类?或者不应该吗?

Kathleen Dollard最近的博客文章中,她提出了一个在.net中使用嵌套类的有趣理由.但是,她还提到FxCop不喜欢嵌套类.我假设编写FxCop规则的人并不愚蠢,所以必须在该位置背后有推理,但我无法找到它.

.net fxcop nested class

91
推荐指数
5
解决办法
4万
查看次数

什么时候课程太大或太小?

我最近由我公司的一位高级开发人员审核了我的代码.他批评我的设计使用了太多的课程.我很想听听你的反应.

我的任务是创建一个服务,该服务生成一个xml文件,因为它操作了3个其他xml文件.我们将这些命名为aaa.xml,bbb.xmlccc.xml.该服务分两个阶段进行.在第一阶段,它针对bbb.xml清理aaa.xml.在第二阶段,它将第一阶段的产品与ccc.xml合并以产生最终结果.

我选择了一个包含三个类的设计:一个XmlService类,它使用了另外两个类,一个scrubber类和一个merger类.我保持擦洗和合并类是分开的,因为这两个类都很大并且具有不同的逻辑.

我认为我的方法很好,因为它让我的课程变得小而有凝聚力.我的方法也有助于控制我的测试类的大小.

高级开发人员断言,清理和合并类只能由XmlService类使用,因此应该是它的一部分.他觉得这会使XMLService具有凝聚力,这就是他所说的具有凝聚力的意思.他还认为以这种方式分手,会使他们松散凝聚力.

具有讽刺意味的是,我试图打破这些课程以达到凝聚力.你怎么看?谁对或错?我们都对吗?谢谢你的建议.

oop

18
推荐指数
2
解决办法
2060
查看次数

C#中的继承+ NestedClasses

我们可以在C#中使用嵌套类.这些嵌套类也可以继承OuterClass.例如:

public class OuterClass
{
  // code here
  public class NestedClass : OuterClass
  {
    // code here
  }
}
Run Code Online (Sandbox Code Playgroud)

完全可以接受.

我们也可以在不将NestedClass作为OuterClass的嵌套类的情况下实现这一点,如下所示:

public class OuterClass
{
  // code here
}

public class NestedClass : OuterClass
{
  // code here
}
Run Code Online (Sandbox Code Playgroud)

我想知道,上面两个场景之间有什么区别?在方案I中可以实现什么,在方案II中无法实现?通过使NestedClass"嵌套"到OuterClasss,我们能得到更多的东西吗?

c# inheritance nested-class

9
推荐指数
2
解决办法
6178
查看次数

什么样的访问修饰符可以应用于类?

经过一番研究后,我确定您可以应用于类的唯一访问修饰符是:

  • 公众 - 任何集会都有
  • internal - 仅在当前程序集中可用

但是下面的错误消息似乎暗示如果一个类没有在命名空间中定义,那么它可以被定义为private,protectedprotected internal.

public和internal是唯一可以在课堂上使用的类修饰符还是更多?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test2343434
{
    class Program
    {
        static void Main(string[] args)
        {
            Tools.ToolManager toolManager = new Tools.ToolManager();

            Console.ReadLine();
        }
    }

}

namespace Tools
{
    //error: Elements defined in a namespace cannot be explicitly 
    //declared as private, protected, or protected internal
    private class ToolManager 
    {
        public ToolManager()
        {
            Console.WriteLine("inside tool manager");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# oop access-modifiers

4
推荐指数
1
解决办法
832
查看次数

标签 统计

c# ×2

oop ×2

.net ×1

access-modifiers ×1

class ×1

fxcop ×1

inheritance ×1

nested ×1

nested-class ×1