Tag: 初始化

c#Leaner初始化int数组的方法

拥有以下代码是否有一种更简单的方法将数组从1初始化为由变量指定的数字? int nums=5; int[] array= new int[nums]; for(int i=0;i<num;i++) { array[i] = i; } 也许用linq或一些array.function?

将winform的元素重置为初始化状态(C#/ .Net)

我正在使用面板中的各种元素在C#中构建一个winform,该面板开始是隐形,禁用或设置为null(标签,combobox,网格等)。 当用户经历并做出选择时,这些元素被填充,选择等。 我们的想法是上传文件,读取文件并将条目处理到数据库。 完成此目录的处理后,我希望能够让用户选择另一个目录,而无需退出并重新启动winform应用程序,只需按下在该过程完成时变为可见的按钮即可。 是否有一个简单的调用来重置应用程序(或包含元素的面板),类似于刷新webform时,或者我是否必须编写一个一次“重置”所有这些元素的函数? 编辑:作为开发会议的结果,我的项目改变了方向。 我感谢你们两位帮助解答的人,我将结束这个问题。

在方法调用中初始化字符串数组作为C#中的参数

如果我有这样的方法: public void DoSomething(int Count, string[] Lines) { //Do stuff here… } 为什么我不能这样称呼它? DoSomething(10, {“One”, “Two”, “Three”}); 什么是正确的(但希望不是很长的路)?

为什么我不能在初始化器中初始化只读变量?

为什么我不能在初始化器中初始化只读变量? 以下内容不起作用: class Foo { public readonly int bar; } new Foo { bar=0; }; // does not work 这是由于CLR的某些技术限制吗? 编辑 我知道new Foo { bar=0; } new Foo { bar=0; }与new Foo().bar=0;相同new Foo().bar=0; ,但是CLR强制执行“readonly”,还是只是编译器限制?

如何理解EMCA 335中关于`.locals init`的这些段落?

来自ECMA 335 I.12.4.1方法调用 局部变量数组对于对象类型以及包含对象的值类型中的字段始终为null。 此外,如果设置了.locals init ,则局部变量数组初始化为0表示整数类型,0.0表示浮点类型。 CLI不会初始化值类型,但validation的代码将作为方法入口点代码的一部分提供对初始化程序的调用。 所以 “对于整数类型初始化为0,对于浮点类型初始化为0.0”是否意味着“将值类型归零”? 这是否意味着:无论.locals init ,CLI必须始终确保在方法输入时将对象类型设置为null? 那么为什么它在这里区分对象类型和值类型:是不是零值类型类似于零对象类型? 如何理解“CLI没有初始化”值类型“? 这是什么意思:“经过validation的代码将提供对初始化程序的调用,作为方法入口点代码的一部分”? 不是CLI的validation部分吗? 来自ECMA 335 III.1.8.1.1validation算法 可validation的方法应具有.locals init set。 如果未设置,CLI可能会抛出VerificationException ,其中程序集尚未被授予SecurityPermission.SkipVerification 。 CLI可以选择执行明确的赋值分析(以确定在读取之前写入哪个位置),以允许CIL到本机代码编译器最小化其对此要求的性能影响。 如果设置了.locals init ,则规范要求CLI必须在方法输入时将局部变量数组归零。 这意味着归零机器代码需要在进入时执行。 那么,鉴于可能不必要的归零已经完成,“明确的分配分析”将如何帮助? 如果我不清楚,请道歉。 我会尽力根据评论改进我的问题。

c#中的声明是分配内存还是分配内存的新运算符?

c#中的声明是为要创建的变量分配内存,还是分配内存的新运算符,并且能够调用构造函数来初始化内存中的已分配变量? 根据我的理解,如果没有new运算符,则无法调用任何类型的构造函数。 我对么?

简化的集合初始化

在初始化WF4活动时,我们可以这样做: Sequence s = new Sequence() { Activities = { new If() …, new WriteLine() …, } } 请注意, Sequence.Activities是Collection但可以在没有新Collection()的情况下初始化它。 如何在Collection属性上模拟此行为?

初始化语法:new ViewDataDictionary {{“Name”,“Value”}}

我正在寻找一种方法将ViewDataDictionary传递给ASP.NET MVC中的部分视图,我来到这个语法: new ViewDataDictionary { { “Name”, “Value” } } 我对这里的初始化语法有点困惑。 任何人都可以向我解释一下吗?

NullReferenceException,带有resharper建议的对象初始值设定项

我对象初始化器语法有一个奇怪的问题。 这是我的示例类: public class Foo { public Bah BahProp { get; set; } } public class Bah { public int Id { get; set; } } 考虑以下三种方法来初始化对象: 工作正常的旧的,冗长但明确的方式: var foo1 = new Foo(); foo1.BahProp = new Bah(); foo1.BahProp.Id = 1; // correctly initialized 我总是使用的第二种方法,使用对象初始化器语法: var foo2 = new Foo { BahProp = new Bah { […]

在字段定义或类构造函数中初始化类字段

我有一个类,其中一个字段需要在初始化对象时进行初始化,例如需要在对象添加/删除之前创建的列表。 public class MyClass1 { private List _otherClassList; public MyClass1() { this._otherClasslist = new List(); } } public class MyClass2 { private List = new List(); public MyClass2() { } } 这两个类有什么区别,为什么你会选择一种方法而不是另一种方法呢? 我通常在构造函数中设置字段,就像在MyClass1中一样,因为我发现更容易在一个地方查看以查看实例化对象时发生的所有事情,但是在任何情况下都更好像在MyClass2中一样直接初始化一个字段?