Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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# 从it自静态方法访问受对象保护的静态字段_C#_C# 3.0 - Fatal编程技术网

C# 从it自静态方法访问受对象保护的静态字段

C# 从it自静态方法访问受对象保护的静态字段,c#,c#-3.0,C#,C# 3.0,我有一个棘手的情况,请让我描述一下,我有一个公共类,有几个字段,如下所示: public class TextClass { protected static readonly TraceSwitch Ts = new TraceSwitch(); protected static readonly TraceAction Th = new TraceHelper(); public TextClass() {

我有一个棘手的情况,请让我描述一下,我有一个公共类,有几个字段,如下所示:

public class TextClass  
{  
        protected static readonly TraceSwitch Ts = new TraceSwitch();
        protected static readonly TraceAction Th = new TraceHelper();

        public TextClass()
        {
        }

        public static void TakToSaTuAKODOSTANEM()
        {
            // i want to access to fieldd 'Ts' and 'Th' here!
        }
    }
当我访问该方法时,我意识到类的静态字段已经创建。 你觉得怎么样

编辑1: 好吧,我写得有点错误,我可以像那样访问它,但重点是通过反射动态地访问它们,因为我需要在更多不同的对象中使用它

编辑2:
感谢各位,我已经表明了我的观点,我将关闭线程。

这两个字段都是在应用程序启动时初始化的,所以您可以随时使用它们;-

您可以访问它们,它们是创建的,但您不能通过此访问它们。这将引用实际实例。因为静态类没有实例,所以它不会工作


您可以通过TextClass.TraceSwitch访问它们,当然可以,您只需在代码的前两行中实例化它们!尝试时会发生什么?遇到什么麻烦?这不是一个棘手的情况,在访问TaktoSatuaKodoStatanem方法之前,静态字段总是初始化的。除了有一个名为TaktoSatuaKodoStatanem的方法之外,还有什么问题;Te字段在启动应用程序时未初始化。通过创建类的实例或调用类的静态成员,在第一次调用类时初始化这些字段。并表示:[…]静态构造函数的执行由应用程序域中发生的以下事件中的第一个触发:•创建了类的实例。•引用了该类的任何静态成员。[…]您可以进行一个简单的测试,以证明它使用一些静态字段创建了一个类,并查看它们是否在不创建该类的任何实例或引用任何静态成员的情况下进行了初始化。