static-constructor相关内容
这不是有效的代码: 公共类 MyClass{私有静态布尔值 yesNo = false;静止的{如果(是否){System.out.println("是");返回;//返回语句是问题}System.exit(0);}} 这是一个愚蠢的例子,但是在静态类构造函数中我们不能return;.为什么?这有充分的理由吗?有人对此了解更多吗? 所以我应该做 return 的原因是要在那里结束构造.
..
我想要一个带有私有静态数据成员的类(一个包含所有字符 a-z 的向量).在 java 或 C# 中,我可以只创建一个“静态构造函数",它会在我创建类的任何实例之前运行,并设置类的静态数据成员.它只运行一次(因为变量是只读的并且只需要设置一次)并且因为它是类的函数,所以它可以访问其私有成员.我可以在构造函数中添加代码来检查向量是否已初始化,如果未初始化则对其进行初始化,但这会引入许多必要的检查并且似
..
请向我解释静态构造函数的使用.为什么以及何时创建静态构造函数,是否可以重载一个? 解决方案 不,你不能重载它;静态构造函数对于初始化与类型相关的任何静态字段(或任何其他每个类型的操作)非常有用 - 特别适用于将所需的配置数据读入只读字段等. 它在第一次需要时由运行时自动运行(那里的确切规则很复杂(参见“beforefieldinit"),并且在 CLR2 和 CLR4 之间有微妙的变
..
命名空间 MyNameSpace{静态类 MyClass{静态 MyClass(){//认证过程..用户需要输入密码}public static void MyMethod(){//依赖于构造函数的成功完成}}课程计划{静态无效主(字符串 [] args){MyClass.MyMethod();}}} 这是我假设的顺序 静态构造函数的开始 静态构造函数结束 main 开始 MyMet
..
我有一个关于值类型中的类型构造函数的问题.这个问题的灵感来自 Jeffrey Richter 通过 C# 3rd ed 在 CLR 中写的东西,他说(在第 195 页 - 第 8 章)你永远不应该在值类型中实际定义类型构造函数,因为有时 CLR 不会调用 因此,例如(嗯……实际上是杰弗里·里希特斯的例子),即使查看 IL,我也无法弄清楚为什么在以下代码中没有调用类型构造函数: 内部结构 S
..
关于 C# 中的静态构造函数的文档 说: 静态构造函数用于初始化任何静态数据,或执行需要的特定操作只执行一次.它被称为自动在第一个之前实例已创建或任何静态成员被引用. 最后一部分(关于它何时被自动调用)让我陷入了循环;在阅读那部分之前,我认为通过简单地以任何方式访问一个类,我可以确定它的基类的静态构造函数已被调用.测试和检查文档表明情况并非如此;似乎基类的静态构造函数在访问该基类的成员
..
我正在尝试构建一些东西来从类名动态实例化一个对象,类似于 Java 的 Class.forName 方法的工作方式,例如 Class klas = Class.forName("MyClass");对象 obj = klass.instantiate(... 我在 Objective-C 中没有看到任何此类行为,因此我想在加载 Objective-C 类时调用一个方法来注册 Class.基本上
..
我想要一个带有静态数据成员的模板化类,并通过模拟“静态构造函数"对其进行初始化.对于非模板类,这已经得到回答(请参见 int ,并且可以在没有此类构造函数的情况下编写;但是,我需要一个通用的解决方案.) #includestruct Foo{静态整数x;静态结构初始化{在里面(){std :: cout
..
公共类ClassA{公共静态只读字符串processName;}公开课ClassB:ClassA{静态ClassB(){processName ="MyProcess.exe";}} 在编译上面的C#代码时出现错误. 错误提示-“无法将静态只读字段分配给它(除了在静态构造函数或变量初始化程序中)" 但是我是在静态构造函数中分配它的. 对这样一个静态变量的需要是,基类具有使用此
..
Jon Skeet建议在他的单例实施中 ,如果您需要最大程度的懒惰您的单个,您应该添加一个静态构造函数,这将使编译器将类型标记为beforefieldinit./p> 但是,我进行了一些测试,似乎在没有 beforefieldinit的情况下,它更加懒惰. 代码示例(私有构造函数将输出调用到控制台并验证字段是否已初始化: 公共密封类Singleton{私有静态只读Singleton实例=
..
尝试使用其静态构造函数通过以下工厂注册我的类型时遇到问题: public class Factory { public static Factory Instance { get { return _instance; } } private static Factory _instance = new Factory(); private
..
许多人也许知道为什么我们需要使用下面显示的代码。但是,我想将此逻辑分为几层,并且不想在Web层中引用Entity Framework DLL,因此最终将这段代码放在 DbContext 类。 这是个坏主意吗?这样做会不会对应用造成性能影响? Database.SetInitializer>(null) ; 解决方案 没有值得一提的性能
..
我想知道为什么我的静态构造函数输出的是默认构造函数静态构造器,而不是相反的静态构造器和默认构造函数或仅默认构造函数。当我使用静态构造函数时,它应该首先执行静态构造函数。但是,从下面的代码中, 第一个问题:为什么在静态构造函数之前调用默认构造函数? 类程序 { static void Main(string [] args) { var test = Single.S; }
..
谁能解释CLR如何处理静态类? CLR是否创建一个用于内部处理静态类的单例实例?如果没有,为什么我们在C#中有一个静态构造函数? (据我了解,我们仅将构造函数用于实例化该类)。 解决方案 首先,CLR中没有静态类。 CLR对静态类一无所知。 这是C#的功能。 静态类被编译为抽象以及密封类。将其设为抽象可防止实例化,而使其 sealed 可防止继承。 静态类没有特殊之处,它只是
..
以下程序的输出为: 非静态 静态 非静态 这是编译器错误吗?我期望: 静态 非静态 非静态 因为我认为静态构造函数总是在非静态构造函数之前调用。 我使用.net 3.5和.net 4.0在Visual Studio 2010中对此进行了测试。 使用系统; 使用System.Collections.Generic; 使用System
..
我有一个关于Value类型中的类型构造函数的问题.这个问题的灵感来自Jeffrey Richter通过C#第三版在CLR中写的东西,他说(在第195页-第8章),您永远不应该在值类型中实际定义类型构造函数,因为在某些情况下CLR不会调用它. 因此,例如(嗯...实际上是Jeffrey Richters的例子),即使通过查看IL也无法弄清楚为什么在以下代码中未调用类型构造函数: inte
..
这不是有效的代码: public class MyClass { private static boolean yesNo = false; static { if(yesNo) { System.out.println(“Yes”); 返回; //返回语句是问题 } System.exit(0); } } 这是一个愚蠢的例子,但在静态类
..
我有一个静态方法类,可以在类中保存的地图上执行,我想在调用类时设置地图。我试过使用一个私人导师,但它不是被叫。我的代码的相关部分是: public class MyClass { private static final String KEYS = “ABC”; private static final String [] DATA = {“AAA”,“BBB”,“CCC”};
..
正如在我的另一个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 ,而不是
..
在C ++中没有静态构造函数的原因是什么? 如果允许,我们将初始化其中的所有静态成员,非常有条理的方式,如: //非法C ++ 类样本 { public: static int some_integer; static std :: vector字符串; //非法构造函数! static sample() { some_
..