c# - in event definition after init, why am I getting Error 18 Use of unassigned local variable 'beforeEvntDrawArg' -
i have event object...
public class beforeevntdrawargs { /// <summary> /// event html. /// </summary> internal string innerhtml { { 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)); } } } while trying bubble event , copy details, error 18 use of unassigned local variable 'beforeentdrawarg'
if assign null beforeevntdrawargs beforeevntdrawarg = null; compiles fine, because app bombs out saying null ref. not sure doing wrong, can me correct code?
however in event body when copying , initializing, doing wrong, why getting uninitialized @ compile time, , if use null, why break @ runtime? please let me know how resolve this..
private beforeevntdrawargs dobeforeevntdraw(event e) { // issue begins here, , pre-initializing null compiles, // breaks on runtime null ref beforeevntdrawargs beforeevntdrawarg = new beforeevntdrawargs(e, this.tagfields) { hoverover = encoder.htmlencode(beforeevntdrawarg.text), innerhtml = encoder.htmlencode(beforeevntdrawarg.text) }; this.onbeforeevntdraw(beforeevntdrawarg); return beforeevntdrawarg; } error 18 use of unassigned local variable 'beforeevntdrawarg'
you attempting use beforeevntdrawarg within it's own object initializer. isn't supported. https://msdn.microsoft.com/en-us/library/bb397680.aspx
try this. it's same without object initialization syntax.
beforeevntdrawargs beforeevntdrawarg = new beforeevntdrawargs(e, this.tagfields) beforeevntdrawarg.hoverover = encoder.htmlencode(beforeevntdrawarg.text); beforeevntdrawarg.innerhtml = encoder.htmlencode(beforeevntdrawarg.text);
Comments
Post a Comment