c# - 在初始化后的事件定义中,为什么我会收到错误 18 使用未分配的局部变量 'beforeEvntDrawArg'

标签 c# asp.net-mvc events compiler-errors

我有一个事件对象...

public class BeforeEvntDrawArgs
{
    /// <summary>
    /// Event html. 
    /// </summary>      
    internal string InnerHTML
    {
        get
        {
            return this.Html;
        }
        set
        {
            this.Html = value;
        }
    }

    /// <summary>
    /// Event tags, using Data TagFields.
    /// </summary>
    public Gamex.TagCollection Tag
    {
        get;
        private set;
    }

    /// <summary>
    /// Event text.
    /// </summary>
    public string Text
    {
        get;
        private set;
    }

    /// <summary>
    /// Event Clue.
    /// </summary>
    public string HoverOver
    {
        get;
        set;
    }

    internal BeforeEvntDrawArgs(Event e, string[] fields)
    {

        this.Id = e.Id;
        this.Text = e.Text;

        if (e.Tags != null)
        {
            this.Tag = new Gamex.TagCollection(fields, new List<string>(e.Tags));
        }


    }
}

在尝试冒泡事件并复制详细信息时,我收到错误 18 使用未分配的局部变量“beforeEntDrawArg”

如果我分配 null BeforeEvntDrawArgs beforeEvntDrawArg = null; 然后它编译正常,因为应用程序会爆炸说 null ref。不确定我做错了什么,你能帮我更正这段代码吗?

但是在事件主体中,当我复制和初始化时,我做错了什么,为什么我在编译时得到一个未初始化的,如果我使用 null,为什么它在运行时中断?请让我知道如何解决这个问题..

  private BeforeEvntDrawArgs DoBeforeEvntDraw(Event e)
     {
         // Issue begins here, and pre-initializing to null compiles, 
         // however breaks on runtime as a null ref
         BeforeEvntDrawArgs beforeEvntDrawArg = new BeforeEvntDrawArgs(e, this.TagFields)
         {
            HoverOver = Encoder.HtmlEncode(beforeEvntDrawArg.Text),
            InnerHtml = Encoder.HtmlEncode(beforeEvntDrawArg.Text)
         };
         this.OnBeforeEvntDraw(beforeEvntDrawArg);
         return beforeEvntDrawArg;
     }

错误 18 使用未分配的局部变量 'beforeEvntDrawArg'

最佳答案

您正在尝试从它自己的对象初始值设定项中使用 beforeEvntDrawArg。这不受支持。 https://msdn.microsoft.com/en-us/library/bb397680.aspx

试试这个。只是没有对象初始化语法,它完全一样。

BeforeEvntDrawArgs beforeEvntDrawArg = new BeforeEvntDrawArgs(e, this.TagFields)
beforeEvntDrawArg.HoverOver = Encoder.HtmlEncode(beforeEvntDrawArg.Text);
beforeEvntDrawArg.InnerHtml = Encoder.HtmlEncode(beforeEvntDrawArg.Text);

关于c# - 在初始化后的事件定义中,为什么我会收到错误 18 使用未分配的局部变量 'beforeEvntDrawArg',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855907/

相关文章:

javascript - jQuery Flot 垂直条形图工具提示位置

java - KeyListener 无法使用 Applet

c# - 如何在 MVC C# 项目中使用 dll 文件?

c# - 页面不包含 X 的定义

c# - 使用 C# 清空某种类型的所有 XML 节点

c# - 如何将 asp.net ajax 工具箱自动完成中的选定值添加到标签?

javascript - 将值传递给 jQuery 成功函数中的 Bootstrap 模式

javascript - 事件在 FireFox 中未定义,但在 Chrome 和 IE 中可以

vb.net - 多人使用 VB.NET 中的事件玩游戏

c# - 启用基于文本框和单选按钮的按钮