相关疑难解决方法(0)

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

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

.net fxcop nested class

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

C#中的私有内部类 - 为什么不经常使用它们?

我对C#比较陌生,每次我开始研究C#项目(我只用C#中几乎成熟的项目)我想知道为什么没有内部类?

也许我不明白他们的目标.对我来说,内部类 - 至少是私有内部类 - 看起来很像Pascal/Modula-2/Ada中的"内部程序":它们允许在较小的部分中分解主类以便于理解.

示例:这是大多数时间看到的内容:

public class ClassA
{
   public MethodA()
   {
      <some code>
      myObjectClassB.DoSomething(); // ClassB is only used by ClassA
      <some code>
   }
}

public class ClassB
{
   public DoSomething()
   {
   }
}
Run Code Online (Sandbox Code Playgroud)

由于ClassB只会被ClassA使用(至少有一段时间),我猜这个代码会更好地表达如下:

   public class ClassA
   {
      public MethodA()
      {
         <some code>
         myObjectClassB.DoSomething(); // Class B is only usable by ClassA
         <some code>
      }

      private class ClassB
      {
         public DoSomething()
         {
         }
      }
   }
Run Code Online (Sandbox Code Playgroud)

我很高兴收到你关于这个主题的消息 - 我是对的吗?

c# scope inner-classes

74
推荐指数
3
解决办法
6万
查看次数

嵌套的部分类

internal partial class Class1
{
    private class Class2 : ISomething, ISomethingElse
    {
        private class Class3 : ISomething
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望Class3自己能够举办另一场私人活动Class4,但那会Class3太大,所以我想做出一些Class3偏见.我知道如何对非嵌套类进行此操作.如何在单独的文件中创建嵌套类?

c#

19
推荐指数
1
解决办法
8145
查看次数

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
查看次数

关于私有,公共和受保护构造函数的抽象类的一些问题

我的第一个问题:抽象类中受保护和公共构造函数之间的区别是什么?

我的第二个问题:如果抽象类有一个私有构造函数,它是否有意义?

提前致谢!

c# oop

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

确保对象仅由工厂创建(C#)

如何确保某个类仅由工厂实例化而不是直接调用new

编辑:我需要工厂是一个单独的类(为了依赖注入目的)所以我不能使它成为实例化类的静态方法,所以我不能使新的私有.

c# factory new-operator

6
推荐指数
4
解决办法
3623
查看次数

子类和继承类之间是否存在技术差异?

从另一个类继承的类与作为其子类的类之间是否存在技术差异?以下代码中A和B之间的区别是什么:

一个)

public class foo {
 ...
 private class bar {...}
}
Run Code Online (Sandbox Code Playgroud)

B)

public class foo { ...}

private class bar extends foo {...}
Run Code Online (Sandbox Code Playgroud)

oop inheritance class subclass

6
推荐指数
2
解决办法
9172
查看次数

Foreach没有找到嵌套类

我想为mvc页面制作一个这样的模型:

public class Body
{
    public int Id { get; set; }

    public class Hand
    {
        public List<Fingers> fingers { get; set; }
    }

    public class Foot
    {
        public List<Toes> toes { get; set; }
    }

    public class Head
    {
        public Nose nose {get; set;}
        public List<Ears> ears { get; set; }
        public List<Eyes> eyes { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后有一个像这样的手指类:

public class Fingers
{
    public int Id { get; set; }
    public string Description { get; set; } …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc razor asp.net-mvc-4

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

C#嵌套类/结构可见性

我试图弄清楚实现某个API目标的正确语法是什么,但是我正在努力实现可见性.

我希望能够Messenger像访问实例的成员一样msgr.Title.ForSuccesses.

但是,我不希望能够Messenger.Titles从我的Messenger课外实例化.

我也愿意制作Messenger.Titles一个结构.

我猜我需要某种工厂模式或其他东西,但我真的不知道我该怎么做.

见下文:

class Program {
    static void Main(string[] args) {
        var m = new Messenger { Title = { ForErrors = "An unexpected error occurred ..." } }; // this should be allowed
        var t = new Messenger.Titles(); // this should NOT be allowed
    }
}

public class Messenger {
    // I've tried making this private/protected/internal...
    public class Titles {
        public string ForSuccesses { get; set; }
        public …
Run Code Online (Sandbox Code Playgroud)

c# syntax struct nested class

3
推荐指数
1
解决办法
2777
查看次数

访问子类中的私有变量?

所以我浏览了一些代码,我遇到了:

public class Person
{
    private string message;

    public override string ToString()
    {
        return message;
    }

    public static Person CreateEmployee()
    {
        return new Employee();
    }

    class Employee : Person
    {
        public Employee()
        {
            this.message = "I inherit private members!";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何使用/访问私有变量"消息",即使它是私有的?

c# oop nested-class private-members

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

C# 嵌套类属性

在 C# 中,为什么嵌套类必须实例化它的父类,以在代码中引用其父类的非静态属性?

public class OuterClass
{
    public int OuterClassProperty
    {
        get
        {
            return 1;
        }
    }

    public class InnerClass
    {
        public int InnerClassProperty
        {
            get
            {
                /* syntax error: cannot access a non-static
                 * member of outer type via nested type.
                 */
                return OuterClassProperty;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

看来我必须这样做:

public class OuterClass
{
    public int OuterClassProperty
    {
        get
        {
            return 1;
        }
    }

    public class InnerClass
    {
        public int InnerClassProperty
        {
            get
            {
                OuterClass ImplementedOuterClass = new OuterClass();
                return …
Run Code Online (Sandbox Code Playgroud)

c#

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

嵌套的C#类 - 从内部调用外部方法

我有一个名为GamePlay的ViewController类.在GamePlay中有一个名为MyPinAnnotationView的嵌套类.当调用MyPinAnnotation的方法TouchesBegan()时,我想从父GamePlay调用方法CheckAnswer().

我不想创建一个新的GamePlay实例,因为我已经设置了变量和实例.我可以通过某种方式访问​​父母吗?(除了事件监听器)

c# iphone nested-class

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