Tag: 初始化

如何在C#中使用以特定间隔分隔的数字初始化数组

我想创建一个包含从0到1的值的数组,间隔为0.1。 我可以用: float[] myArray = new float[10]; float increment = 0.1; for(i = 0; i < 10; i++) { myArray[i] = increment; increment += 0.1; } 我想知道是否有像Enumerable.Range这样的函数允许指定增量间隔。

在Azure函数中初始化AutoMapper

我正在尝试创建一个Azure函数,我在其中使用AutoMapper的一些代码。 我是C#,Azure和AutoMapper的新手,我在找到初始化AutoMapper配置的正确方法时遇到了一些麻烦。 MapInitializer.cs: public static class MapInitializer { public static void Activate() { Mapper.Initialize(cfg => { // initialize mappings here }); } } 然后在我的函数中,我尝试执行以下操作: Function.cs: public static class ProcessQueueForIntercom { [FunctionName(“ProcessQueue”)] public static void Run([QueueTrigger(“messages”)]string myQueueItem, TraceWriter log) { MapInitializer.Activate(); // rest of the code } } 现在的问题是,我第一次使用此function处理消息时,一切顺利,代码按照我的预期运行。 但是,从第二次开始,我收到一条错误,说我的配置已经初始化。 但我真的不知道如何使用Azure函数正确地执行此操作,因为通常您会在App Startup中初始化它,但我认为Azure Functions(CMIW)没有这样的东西,并且我没有找到关于如何做到这一点的更多信息。 我正在考虑用try catch围绕Activate()调用,只记录配置已经加载的警告,但这似乎不是很干净……

while循环中的可变初始化

我有一个以块的forms读取文件的函数。 public static DataObject ReadNextFile(){ …} 而dataobject看起来像这样: public DataObject { public string Category { get; set; } // And other members … } 基本上我想做的是以下内容 List dataObjects = new List(); while(ReadNextFile().Category == “category”) { dataObjects.Add(^^^^^ the thingy in the while); } 我知道它可能不是这样做的,因为我如何访问我刚读过的对象。

在.NET中初始化空变量

在.NET中初始化null变量的正确方法是什么? 我的一位同事告诉我,将变量硬定义为null是一种放缓。 int var1; // good practice string s1; // good practice int var2 = 0; // bad practice string s2 = null; // bad practice 那是对的吗?

如何初始化2Darrays数组?

我有一组2D数组。 例如,它就像: {{{0, 0, 1}, {1, 0, 0}} {{0, 0, 3}, {2, 1, 2}, {2, 2, 1}, {3, 0, 0}} {{0, 0, 7}, {3, 2, 6}, {6, 2, 3}, {6, 3, 2}, {7, 0, 0}}} 但如果我写 int [,][] arrays={{{0, 0, 1}, {1, 0, 0}} {{0, 0, 3}, {2, 1, 2}, {2, 2, 1}, {3, 0, […]

TripleDES IV适用于C#?

所以,当我说出类似的话: TripleDES tripledes = TripleDES.Create(); Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, plain); tripledes.Key = pdb.GetBytes(16); tripledes.IV = pdb.GetBytes(16); 我收到一个错误。 错误曾经在密钥上,但它已被修复(我认为 – 除非你发现错误)。 但是,当我设置IV时发生错误: tripledes.IV = pdb.GetBytes(16); 它说它不是一个有效的初始化向量。 我如何解决它?

有没有办法强制在C#中初始化静态字段?

请考虑以下代码: class Program { static Program() { Program.program1.Value = 5; } static List values = new List(); int value; int Value { get { return value; } set { this.value = value; Program.values.Add(this); } } static Program program1 = new Program { value = 1 }; static Program program2 = new Program { value = […]

是否可以在不运行类中的任何代码的情况下创建类的实例? (没有ctor,没有字段初始化)

我创建了一个引入实现接口的第三方插件(DLL)的引擎。 由于我无法控制插入的代码,我希望能够从正确的类(GetTypes循环直到我找到接口类)运行1个特定方法(来自接口)。 由于任何人都可以创建在Activator.CreateInstance上执行的优秀构造函数代码,我可以通过使用FormatterServices.GetUninitializedObject来解决这个问题。 但是,当在类中的字段上初始化代码时,这无济于事。 public class myclass : myinterface { public someotherclass name = new someotherclass() public myclass() { //Unknown code } //I only want this run. public string MyProperty{ get { return “ANiceConstString”; } } } 两种方式(CreateInstance / GetUninitializedObject)的问题是将运行someotherclass的构造函数。 在开始分析我的需求之前。 这仅在初始化引擎时运行以获得一组标准值。 如果此get’er依赖于其他初始化值,则“插件”将被标记为失败,因为没有返回有效值。 如果没有标记为失败,则稍后将使用Activator.CreateInstance()正确加载该类。 所以坚持这个问题:.Net是否支持任何创建100%非初始化类的方法? 更新答案。 我在发布问题之前对此进行了测试。 对于某个其他类不会运行的答案,我已经测试了它,并且它是静态运行的。 public class myclass : myinterface { static […]

C#语法通过数组中的构造函数params初始化自定义类/对象?

我有一个至少有4个变量的类,我已经为类创建了一个构造函数,以便我可以使用它进行初始化 MyClass testobj = new MyClass(1234,56789,”test text”, “something else”, “foo”); 工作良好。 然后我有一个这样的数组,我需要在循环中解析,所以我想在这个数组中得到一些静态数据。 我的方法是: MyClass[] testobjlist = new MyClass { new MyClass(1001,1234,”Text 1″, “abcdefghijklm”, “ding”), new MyClass(1002,2345,”Text xx”, “bla bla”, “dong”), new MyClass(1003,8653,”Text yy”, “blah blah even more”, “bamm!”) } 但不知怎的,这给了我一个奇怪的错误,我需要额外的} ??? 我不知道如果我应该提到这个,但是我使用Razor-engine 2将它用于网页。但我认为这是一个普通的C#问题? 我的解决方法是使用一个大小初始化数组,然后通过索引逐个添加元素,但我宁愿优先使用上面的解决方案,因为我可能需要在测试时按顺序上下移动项目,我有很多真实数据中超过3个。 想知道我在上面的代码中缺少什么……?

如何使内联数组初始化工作,如字典初始化?

为什么可以像这样初始化Dictionary : var dict = new Dictionary() { { “key1”, 1 }, { “key2”, 2 } }; …但是不要以完全相同的方式初始化KeyValuePair对象的数组: var kvps = new KeyValuePair[] { { “key1”, 1 }, { “key2”, 2 } }; // compiler error: “Array initializers can only be used in a variable // or field initializer. Try using a new expression instead.” […]