C# 内部类和属性的名称相同

C# 内部类和属性的名称相同,c#,properties,naming-conventions,inner-classes,C#,Properties,Naming Conventions,Inner Classes,说“考虑赋予属性与其类型相同的名称”。但是,这似乎不能通过内部类实现,因为此代码不编译: class A { public class B { public string C { get; set; } } public B B { get; set; } } 这些情况有什么特殊的语法吗?两年后。。。但迟做总比不做好 朗拜尔的评论归功于我的评论 不要使用需要对外公开的内部类,这样问题就不会出现。这里的问题是什么?内部类型不能这样做,已经有了一个名

说“考虑赋予属性与其类型相同的名称”。但是,这似乎不能通过内部类实现,因为此代码不编译:

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

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

两年后。。。但迟做总比不做好

朗拜尔的评论归功于我的评论


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

这里的问题是什么?内部类型不能这样做,已经有了一个名为“B”的东西。这就像你有两个同名的属性一样……添加了一个问题。
考虑
的意思是“如果它有意义并且可能的话,尝试一下”。这里是不可能的(如果不将类更改为非内部的),因此您不能这样做。
对于这些情况有什么特殊的语法吗?
否。@g.pickardou我认为您应该问这个问题,但我认为答案可以归结为“不要使用需要在外部公开的内部类”。如果是这样的话,把它作为一个单独的类。只对需要在类内部使用的内容使用内部类。内部类使得定义接口(鸡和蛋的问题)或执行注入之类的操作变得困难。