Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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中访问嵌套类的属性值_C# - Fatal编程技术网

C# 如何在c中访问嵌套类的属性值

C# 如何在c中访问嵌套类的属性值,c#,C#,我在程序集中有以下代码 public class a { public class b { public static string obj; public static string result { get { return obj;

我在程序集中有以下代码

      public class a
    {
        public class b
        {
            public static string obj;
            public static string result
            {
                get
                {
                    return obj;
                }
                set
                {
                    obj = value;
                }
            }
}
            public class c
            {
                string result1;
                public void invoke()
                {
                    result1 = "abc";
                    b.result = result1;
                }


            }
        }
我在另一个applicationsay中引用了它,例如:client-app,并试图访问obj的值


如果我通过创建类b的实例来调用某个值,那么我如何访问它在前一个作用域中设置的值而不从调用的方法返回?

由于所涉及的所有内容都是公共的,您可以在程序集之外访问此值,如下所示:

public class SomeExternalClass
{
    public void SomeMethod()
    {
        string val = a.b.result;
    }
}

b、 结果=结果1;是任何方法之外的语法错误,那么您想做什么呢?就此而言,public invoke也是一个语法错误,因为它没有返回类型…如上所述,您的代码显然是错误的,但是如果我正确理解您的问题,并且您希望从a之外的类访问obj,您可以直接执行,只要它是静态的,公共变量。例如,从类a之外的类d中的void测试中,可以使用a.b.obj=value。请查看我的更新代码。如果调用方法b.invoke,它将为属性结果设置一个值。我如何访问该值?因此,如果我通过创建类b的实例来调用值,我如何访问它在上一个作用域中设置的值?我不确定你的意思。您的a.b.result属性是静态的;无论您是否创建了b的实例,或者创建了多少实例,始终只有一个结果可以通过a.b.result属性访问。如果你在前面的范围中所指的是以前的结果,那么就没有办法得到以前的结果。我真的不清楚你到底想在这里做什么。我怀疑你把事情弄得比实际需要的复杂得多,但如果你不知道自己到底想做什么,就很难说出来。自从我发布这个答案后,你已经编辑了你的问题。我不喜欢复杂的事情。我已经解释了我想要达到的目标。我在程序集中有上述代码,当我调用一个方法时,该值应该设置为属性,并且可以从客户端访问。我同意使用静态变量是可能的,正如你的回答所说,但是由于静态变量的作用域是全局的,我正在寻找一种替代方法。在不知道真实代码的全部细节,而不是你在问题中发布的示例代码的情况下,看起来确实非常像你在过度复杂化事情。为什么不调用方法,然后简单地设置属性并返回值呢?你这么麻烦肯定是有原因的,但我不知道你的问题是什么原因。我不认为你会得到比我已经给出的更好的答案,除非你更清楚这一切的真正目的是什么。如果我使用返回类型,它将使方法调用异步,因此将等待过程完成。如果我在这里使用线程概念,可能会导致错误。提供的示例代码是一个程序集,我需要在外部调用该方法。一旦执行,该值应单独返回给客户端应用程序。我解释了为什么我使用这样的方法,希望这足以回答我的问题。