Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.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#_Get_Initialization - Fatal编程技术网

C# 如何避免重新初始化从未更改的类?

C# 如何避免重新初始化从未更改的类?,c#,get,initialization,C#,Get,Initialization,我有一个类,在我的代码中只需要初始化一次,但是它所在的函数被多次调用,并且该类被一次又一次地初始化。这个类只需要调用一次,因为传递给它的数据永远不会更改,让我的代码多次重新初始化它是一种浪费。我想让我的代码有一种方法来检查这个类是否已经初始化,并且可以获取已经生成的所需信息。我的第一个想法是以单例模式的方式进行设计,但我认为这并不是必需的,因为在我的代码中其他任何地方都不需要这个类。这样做的简单方法是什么?将其设置为静态。类将在首次使用时初始化…A是一种方法 public static clas

我有一个类,在我的代码中只需要初始化一次,但是它所在的函数被多次调用,并且该类被一次又一次地初始化。这个类只需要调用一次,因为传递给它的数据永远不会更改,让我的代码多次重新初始化它是一种浪费。我想让我的代码有一种方法来检查这个类是否已经初始化,并且可以获取已经生成的所需信息。我的第一个想法是以单例模式的方式进行设计,但我认为这并不是必需的,因为在我的代码中其他任何地方都不需要这个类。这样做的简单方法是什么?

将其设置为静态。类将在首次使用时初始化…

A是一种方法

public static class MyClass
{
   public static bool IsInited { get; private set; }
   public static void Init(...)
   {
      ...
      IsInited = true;
   }
}
如果
Init
没有参数,例如可以设置所有属性本身,则可以使用a而不是
Init
。基本上,当其他代码第一次访问属性时,将调用构造函数

public static class MyClass
{
   public static bool IsUnix { get; private set; }
   static MyClass()
   {
      IsUnix = Environment.NewLine == '\n';
   }

静态类怎么样?如果我将类设置为静态,那么我是否也必须将其中的函数和变量设置为静态?当然是user3344076。那里的一切都必须是静态的。谢谢你的帮助。我还是个新手,所以谢谢你和我在一起。