【问题标题】:Same name for inner class and property内部类和属性同名
【发布时间】:2018-05-02 21:39:01
【问题描述】:

Framework naming conventions 说“考虑为属性提供与其类型相同的名称。”但是,内部类似乎无法做到这一点,因为这段代码无法编译:

class A
{
    public class B
    {
        public string C { get; set; }
    }
    public B B { get; set; }
}

这些情况有什么特殊的语法吗?

【问题讨论】:

  • 这里的问题是什么?你不能用内部类型做到这一点,已经有一个名为“B”的东西。就好像你有 2 个同名的属性一样......
  • 添加问题。
  • CONSIDER 的意思是“如果可行且可行,请尝试”。这是不可能的(不改变类而不是内部的)所以你不能这样做。
  • Is there any special syntax for these cases?
  • @g.pickardou 我认为您应该在Software Engineering.SE 上问这个问题,但我认为答案将归结为“不要使用需要在外部公开的内部类”。如果是这种情况,请将其设置为单独的类。只对需要在类内部使用的东西使用内部类。内部类使得定义接口(鸡和蛋的问题)或做注入之类的事情变得困难。

标签: c# properties naming-conventions inner-classes


【解决方案1】:

两年后……但迟到总比没有好……

归功于 RonBeyer 对我的评论的评论。

不要使用需要对外暴露的内部类,这样问题就不会出现了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-22
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多