static-constructor相关内容

返回静态初始化器

这不是有效的代码: 公共类 MyClass{私有静态布尔值 yesNo = false;静止的{如果(是否){System.out.println("是");返回;//返回语句是问题}System.exit(0);}} 这是一个愚蠢的例子,但是在静态类构造函数中我们不能return;.为什么?这有充分的理由吗?有人对此了解更多吗? 所以我应该做 return 的原因是要在那里结束构造. ..
发布时间:2022-01-19 14:50:10 Java开发

C++中的静态构造函数?我需要初始化私有静态对象

我想要一个带有私有静态数据成员的类(一个包含所有字符 a-z 的向量).在 java 或 C# 中,我可以只创建一个“静态构造函数",它会在我创建类的任何实例之前运行,并设置类的静态数据成员.它只运行一次(因为变量是只读的并且只需要设置一次)并且因为它是类的函数,所以它可以访问其私有成员.我可以在构造函数中添加代码来检查向量是否已初始化,如果未初始化则对其进行初始化,但这会引入许多必要的检查并且似 ..
发布时间:2022-01-05 19:59:28 C/C++开发

静态构造函数有什么用?

请向我解释静态构造函数的使用.为什么以及何时创建静态构造函数,是否可以重载一个? 解决方案 不,你不能重载它;静态构造函数对于初始化与类型相关的任何静态字段(或任何其他每个类型的操作)非常有用 - 特别适用于将所需的配置数据读入只读字段等. 它在第一次需要时由运行时自动运行(那里的确切规则很复杂(参见“beforefieldinit"),并且在 CLR2 和 CLR4 之间有微妙的变 ..
发布时间:2021-12-30 15:16:53 C#/.NET

静态构造函数如何工作?

命名空间 MyNameSpace{静态类 MyClass{静态 MyClass(){//认证过程..用户需要输入密码}public static void MyMethod(){//依赖于构造函数的成功完成}}课程计划{静态无效主(字符串 [] args){MyClass.MyMethod();}}} 这是我假设的顺序 静态构造函数的开始 静态构造函数结束 main 开始 MyMet ..
发布时间:2021-12-25 08:07:22 C#/.NET

为什么 CLR 不总是调用值类型构造函数

我有一个关于值类型中的类型构造函数的问题.这个问题的灵感来自 Jeffrey Richter 通过 C# 3rd ed 在 CLR 中写的东西,他说(在第 195 页 - 第 8 章)你永远不应该在值类型中实际定义类型构造函数,因为有时 CLR 不会调用 因此,例如(嗯……实际上是杰弗里·里希特斯的例子),即使查看 IL,我也无法弄清楚为什么在以下代码中没有调用类型构造函数: 内部结构 S ..
发布时间:2021-12-23 17:28:38 C#/.NET

确保调用基类的静态构造函数的最佳方法是什么?

关于 C# 中的静态构造函数的文档 说: 静态构造函数用于初始化任何静态数据,或执行需要的特定操作只执行一次.它被称为自动在第一个之前实例已创建或任何静态成员被引用. 最后一部分(关于它何时被自动调用)让我陷入了循环;在阅读那部分之前,我认为通过简单地以任何方式访问一个类,我可以确定它的基类的静态构造函数已被调用.测试和检查文档表明情况并非如此;似乎基类的静态构造函数在访问该基类的成员 ..
发布时间:2021-12-17 19:41:27 C#/.NET

类加载时 Objective-C 中的静态初始化器

我正在尝试构建一些东西来从类名动态实例化一个对象,类似于 Java 的 Class.forName 方法的工作方式,例如 Class klas = Class.forName("MyClass");对象 obj = klass.instantiate(... 我在 Objective-C 中没有看到任何此类行为,因此我想在加载 Objective-C 类时调用一个方法来注册 Class.基本上 ..
发布时间:2021-06-11 20:40:32 移动开发

为模板化类模拟静态构造函数

我想要一个带有静态数据成员的模板化类,并通过模拟“静态构造函数"对其进行初始化.对于非模板类,这已经得到回答(请参见 int ,并且可以在没有此类构造函数的情况下编写;但是,我需要一个通用的解决方案.) #includestruct Foo{静态整数x;静态结构初始化{在里面(){std :: cout ..
发布时间:2021-04-24 19:22:59 C/C++开发

分配给基类的静态只读字段

公共类ClassA{公共静态只读字符串processName;}公开课ClassB:ClassA{静态ClassB(){processName ="MyProcess.exe";}} 在编译上面的C#代码时出现错误. 错误提示-“无法将静态只读字段分配给它(除了在静态构造函数或变量初始化程序中)" 但是我是在静态构造函数中分配它的. 对这样一个静态变量的需要是,基类具有使用此 ..
发布时间:2021-04-18 20:05:32 C#/.NET

静态构造函数的单例实现懒惰

Jon Skeet建议在他的单例实施中 ,如果您需要最大程度的懒惰您的单个,您应该添加一个静态构造函数,这将使编译器将类型标记为beforefieldinit./p> 但是,我进行了一些测试,似乎在没有 beforefieldinit的情况下,它更加懒惰. 代码示例(私有构造函数将输出调用到控制台并验证字段是否已初始化: 公共密封类Singleton{私有静态只读Singleton实例= ..
发布时间:2021-04-18 19:55:20 C#/.NET

静态注册的工厂模式

尝试使用其静态构造函数通过以下工厂注册我的类型时遇到问题: public class Factory { public static Factory Instance { get { return _instance; } } private static Factory _instance = new Factory(); private ..
发布时间:2020-11-03 22:12:11 C#/.NET

在静态构造函数中的Database.SetInitializer()?

许多人也许知道为什么我们需要使用下面显示的代码。但是,我想将此逻辑分为几层,并且不想在Web层中引用Entity Framework DLL,因此最终将这段代码放在 DbContext 类。 这是个坏主意吗?这样做会不会对应用造成性能影响? Database.SetInitializer>(null) ; 解决方案 没有值得一提的性能 ..

为什么默认构造函数在静态构造函数之前执行?

我想知道为什么我的静态构造函数输出的是默认构造函数静态构造器,而不是相反的静态构造器和默认构造函数或仅默认构造函数。当我使用静态构造函数时,它应该首先执行静态构造函数。但是,从下面的代码中, 第一个问题:为什么在静态构造函数之前调用默认构造函数? 类程序 { static void Main(string [] args) { var test = Single.S; } ..
发布时间:2020-10-08 05:46:58 C#/.NET

CLR如何处理静态类?

谁能解释CLR如何处理静态类? CLR是否创建一个用于内部处理静态类的单例实例?如果没有,为什么我们在C#中有一个静态构造函数? (据我了解,我们仅将构造函数用于实例化该类)。 解决方案 首先,CLR中没有静态类。 CLR对静态类一无所知。 这是C#的功能。 静态类被编译为抽象以及密封类。将其设为抽象可防止实例化,而使其 sealed 可防止继承。 静态类没有特殊之处,它只是 ..
发布时间:2020-10-03 01:38:40 C#/.NET

静态构造函数可以在非静态构造函数之后运行。这是编译器错误吗?

以下程序的输出为: 非静态 静态 非静态 这是编译器错误吗?我期望: 静态 非静态 非静态 因为我认为静态构造函数总是在非静态构造函数之前调用。 我使用.net 3.5和.net 4.0在Visual Studio 2010中对此进行了测试。 使用系统; 使用System.Collections.Generic; 使用System ..
发布时间:2020-09-25 20:48:10 C#/.NET

为什么CLR不总是调用值类型构造函数

我有一个关于Value类型中的类型构造函数的问题.这个问题的灵感来自Jeffrey Richter通过C#第三版在CLR中写的东西,他说(在第195页-第8章),您永远不应该在值类型中实际定义类型构造函数,因为在某些情况下CLR不会调用它. 因此,例如(嗯...实际上是Jeffrey Richters的例子),即使通过查看IL也无法弄清楚为什么在以下代码中未调用类型构造函数: inte ..
发布时间:2020-08-06 08:41:13 C#/.NET

在静态方法类中的构造方法

我有一个静态方法类,可以在类中保存的地图上执行,我想在调用类时设置地图。我试过使用一个私人导师,但它不是被叫。我的代码的相关部分是: public class MyClass { private static final String KEYS = “ABC”; private static final String [] DATA = {“AAA”,“BBB”,“CCC”}; ..
发布时间:2016-12-30 17:05:21 Java开发

c ++ / cli派生类的静态构造函数不被调用

正如在我的另一个SO帖子中所述,我看到我的应用程序从VS 2008(。 net 3.5)到VS 2013(使用.net 4.0,而不是4.5)。我发现一个类的静态构造函数(cctor)不再被调用。因此,我将应用程序分成了一个小测试程序: DLLs testAssembly_2-0和testAssembly_4-0 类似内容; testAssembly_4-0的名称包含 40 ,而不是 ..
发布时间:2016-11-06 12:54:36 C/C++