Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问公共嵌套类的成员_C# - Fatal编程技术网

C# 访问公共嵌套类的成员

C# 访问公共嵌套类的成员,c#,C#,我有这样的想法: public class OuterClass { // other methods and fields... public class InnerClass { public int Prop1 {get; set;} public int Prop2 {get; set;} } } 然后在方法中传递了一个类型为OuterClass的对象。 我想我可以写这样的东西。但intellisense并没有表现出来 oute

我有这样的想法:

public class OuterClass
{
   // other methods and fields... 

    public class InnerClass {
        public int Prop1 {get; set;}
        public int Prop2 {get; set;}
    }
}
然后在
方法中
传递了一个类型为
OuterClass
的对象。 我想我可以写这样的东西。但intellisense并没有表现出来

outerClassobject.InnerClass.Prop1 = 234;

您正在混合类和对象。您需要访问对象的字段或属性:

OuterClass.InnerClass innerClassObject = new OuterClass.InnerClass();
innerClassObject.Prop1 = 234;
或:

当您想要访问内部类的属性时,您需要它的一个实例。因此,在上面的示例中,
OuterClass.InnerClass
被实例化并分配给
InnerClassProp


在您的示例中,类是嵌套的。这并不一定意味着实例也是嵌套的。相反,也有可能实例是嵌套的,但类不是嵌套的。

为什么?为此,需要一个名为
InnerClass
的类型为
OuterClass.InnerClass
的公共属性/字段。您的代码显示您声明了类,而不是您正在使用的it@CamiloTerevinto你能按你说的方式更新类定义吗,这样我就能理解
public-class-OuterClass{public-InnerClass-internal{get;set;}//你当前的东西…}
(请注意,名称为
internal
,因为它不能是
InnerClass
,因为该名称已被采用)
InnerClass
本身不是
OuterClass
的成员,它只是一个具有时髦名称的类。如果
Prop1
static
,您可以使用
OuterClass.InnerClass.Prop1
访问它。作为实例成员,您只能作为已删除的
OuterClass
的某个字段或属性的成员访问它eclared属于
InnerClass
类型。您是否可能是Java程序员?C#嵌套类的行为与Java内部类不同,如果这让您感到困惑的话。我只想指出,该类不必是内部类才能用作属性(对大多数人来说是显而易见的,但对OP来说可能不是).哦,是的,这就是我想要设计它的方式,以便能够以这种方式使用它..感谢outerClassobject.InnerClassProp.Prop1=234;
public class OuterClass
{
   // other methods and fields... 
    public InnerClass InnerClassProp { get; } = new InnerClass();

    public class InnerClass {
        public int Prop1 { get; set; }
        public int Prop2 { get; set; }
    }
}

outerClassobject.InnerClassProp.Prop1 = 234;