C# C“错误”;的类型初始值设定项。。。抛出异常

C# C“错误”;的类型初始值设定项。。。抛出异常,c#,class,static,C#,Class,Static,此错误仅在某些计算机中发生。通过读取堆栈信息,在静态类中调用此静态方法(“FormatQuery”)时会出现一些问题: using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.IO; using System.Text; using System.Windows.Forms; using DevExpress.XtraEditors; usi

此错误仅在某些计算机中发生。通过读取堆栈信息,在静态类中调用此静态方法(“FormatQuery”)时会出现一些问题:

using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using FlexCel.Report;
using FlexCel.XlsAdapter;
using ComboBox=System.Windows.Forms.ComboBox;

namespace XSoftArt.A
{
    static class RHelper
    {
        private static string FormatQuery(string FieldName, int Count,
            CheckedListBox chekedListBox)
        {
            string ID = string.Empty;
            int n = Count;

            foreach (DataRowView item in chekedListBox.CheckedItems)
            {
                ID = ID + item["" + FieldName + ""];
                if (n > 1)
                {
                    ID = ID + " , ";
                    n--;
                }
            }
            return ID;
        }

        public static string FormatQuery(CheckedListBox chekedListBox)
        {
            return FormatQuery(chekedListBox.ValueMember,
                chekedListBox.CheckedItems.Count, chekedListBox);
        }
    }
那么,有什么问题?我如何解决它?项目配置或去bug模式有什么问题吗

错误信息:

   at XSoftArt.EVS.ReportHelper.FormatQuery(CheckedListBox chekedListBox)
   at XSoftArt.EVS.NewEmailSelectClient.LoadList_v2(String search, TextBox txtbox)
   at XSoftArt.EVS.NewEmailSelectClient.LoadContacts()
   at XSoftArt.EVS.NewEmailSelectClient.button7_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
我尝试了你的代码:

CheckedListBox cb = new CheckedListBox();
for (var i = 1; i < 11; i++)
  cb.Items.Add("Item " + i, i % 3 == 0);

string fmt = RHelper.FormatQuery(cb);
Console.WriteLine(fmt);
Console.ReadLine();
也许你也面临着同样的问题。尝试进行以下更改,而不是强制转换到DataRowView

foreach (var item in chekedListBox.CheckedItems)
{
    ID = ID + item.ToString(); // item["" + FieldName + ""];

因为CheckedListBox中的项属于对象类型。

类型初始值设定项异常表示无法创建该类型。这通常发生在调用方法之前,当您只是引用该类时

您这里的代码是您键入的完整文本吗?我会寻找一个失败的任务。我在获取应用程序设置和类似性质的东西时经常看到这一点

static class RHelper
{
     //If this line of code failed, you'd get this error
     static string mySetting = Settings.MySetting;
} 
您还可以通过类型的静态构造函数看到这一点


在任何情况下,该类还有其他内容吗?

如果您有web服务,请检查指向该服务的链接。我有一个类似的问题,当我更改我的web服务URL时,这个问题得到了修复。

我用自己的代码得到了这个错误。我的问题是,我的配置文件中有重复的密钥。

我在尝试登录到不再存在的NLog目标时出错。

我有这个问题,就像Anderson Imes说的,这与应用程序设置有关。我的问题是我的一个设置的范围被设置为“用户”,而它本应该是“应用程序”

我在修改Nlog配置文件时出现此错误,并且没有正确格式化XML。

我也有相同的错误,但在我的情况下,它是由平台目标设置不匹配引起的。一个库被专门设置为x86,而主应用程序被设置为“Any”……然后我将开发转移到x64笔记本电脑上。

如果类试图在
web.config
中获取不存在的键的值,则会出现此问题

例如,该类有一个静态变量
ClientID

private static string ClientID = System.Configuration.ConfigurationSettings.AppSettings["GoogleCalendarApplicationClientID"].ToString();

但是
web.config
不包含'GoogleCalendarApplicationClient'键,然后,在任何静态函数调用或任何类实例创建时都会引发错误

此错误是由格式不正确的NLog.config文件为我生成的。

这可能是由于没有Oracle客户端的管理员权限造成的。将此添加到
App.config
文件中:

<IPermission class="Oracle.DataAccess.Client.OraclePermission,
 Oracle.DataAccess, Version=2.111.7.20, Culture=neutral,
 PublicKeyToken=89b483f429c47342" version= "1" Unrestricted="true"/>


它是否说明抛出了哪个异常?既然这个类没有静态初始值设定项,你确定它是这个类吗?检查InnerException和Details在堆栈跟踪中没有提到FormatQuery,你确定是这个类出了问题吗?这门课是完整的还是你遗漏了什么?对不起。我又编辑了一次我的帖子并再次粘贴了错误信息。我不这么认为,因为这段代码在另一个项目中运行良好。我认为这可能是一些其他问题(我从另一个项目复制了这个模块到这个…)。此方法的cal如下所示(当我为SQL设置参数时):“@StateID”,ReportHelper.FormatQuery(db_InvoiceStateID)。db_InvoiceStateID这里是一个checkedListBox组件。这正是我遇到的问题-在调用构造函数之前不会对静态成员进行赋值。谢谢天才的回答。。。这也正是我的问题。我发现调试这个非常困难,因为异常掩盖了真正的错误。谢谢你的帮助。那么你去哪里改变这个呢?细节,伙计,细节!
<IPermission class="Oracle.DataAccess.Client.OraclePermission,
 Oracle.DataAccess, Version=2.111.7.20, Culture=neutral,
 PublicKeyToken=89b483f429c47342" version= "1" Unrestricted="true"/>