访问内部类变量

时间:2016-10-13 20:55:52

标签: c# class

如何访问内部类的成员? 例如。

class A
{
    class B
    { 
      public int X;
    }
}

class C
{
  // any possible way to summon int x here ?
}

我想要做的是召唤C类中的整数X.我该怎么做? 这是唯一的方法吗?

class A
{

}


class B
{ 
     public int X;
}

class C
{
  //summonning int x here
}

4 个答案:

答案 0 :(得分:1)

使内部类公开 还有一些阅读https://msdn.microsoft.com/en-us/library/ms173120.aspx

public class A
{
        public Class B
        { 
          public int X;
        }
 }

答案 1 :(得分:0)

首先,让你的班级A和B公开。 然后,

public class Program
{
    public static void Main()
    {
        Console.WriteLine(new C().X);
    }

}
public class A
{
    public class B
    { 
        public int X;
        public B(){
            X = 5;
        }
    }
}

public class C{
  public int X {get;set;}
  public C(){
    var objB = new A.B();
    X = objB.X;   
  }
}

谢谢你@Default!我应该经常使用小提琴而不是盲目写作。

答案 2 :(得分:0)

只能使用该类的实例访问非静态字段。请查看以下示例。它直接从X的实例获取非静态A.B字段,从内部Y类获取静态字段B

public class A
{
    public class B
    { 
        public int X;
        public static int Y;
    }
}
public class C
{
    void Function1(A.B instanceOfB){
        int x=instanceOfB.X; // get value of non-static field X
        int y=A.B.Y; // get value of static field Y
    }
}

答案 3 :(得分:0)

<!DOCTYPE html>

<meta charset="utf-8">

<title>Dropzone simple example</title>


<!--
  DO NOT SIMPLY COPY THOSE LINES. Download the JS and CSS files from the
  latest release (https://github.com/enyo/dropzone/releases/latest), and
  host them yourself!
-->
<script src="https://rawgit.com/enyo/dropzone/master/dist/dropzone.js"></script>
<link rel="stylesheet" href="https://rawgit.com/enyo/dropzone/master/dist/dropzone.css">


<p>
  This is the most minimal example of Dropzone. The upload in this example
  doesn't work, because there is no actual server to handle the file upload.
</p>

<!-- Change /upload-target to your upload address -->
<form action="/upload-target" class="dropzone"></form>

在这里你可以使用依赖注入来完成它。不要使用A,B,C这很烦人。您可以检查什么是SOLID以及为什么使用依赖注入是好的。