註記與補充:Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.

  • 3317
  • 0

註記與補充:Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.

 

在《Compiler Error CS0746》一文中,針對匿名型別成員的宣告指出二種錯誤的形式與二種正確的形式,其中正確的二種形式摘錄如下:

        var correct_2 = new {num = i, message = s}; // OK

正確的第一種形式並未指定成員的名稱,而正確的第二種形式則具體的指出成員的名稱是num與message。

 

倘若針對意圖指定給予成員的初始值撰寫Extension Method,則只能使用正確的第二種形式。

下文是錯誤的寫法,將會出現編輯時期的錯誤訊息:

                                                       a.Title.RemoveTags(),
                                                       a.Image.RemoveTags(),
                                                       a.Url.RemoveTags(),
                                                       a.Description.RemoveTags()
                                                       });

下文是正確的寫法,可以消除編輯時期的錯誤訊息:

                                                       Title = a.Title.RemoveTags(),
                                                       Image = a.Image.RemoveTags(),
                                                       Url = a.Url.RemoveTags(),
                                                       Description = a.Description.RemoveTags()
                                                       });

下文是引用HtmlAgilityPack所撰寫的Extension Method:

    {
        public static string RemoveTags(this String source)
        {
            string result = string.Empty;
            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(source);
            result = doc.DocumentNode.InnerText;
            return result;
        }
    } 

 

參考資料:

[1]Compiler Error CS0746
http://msdn.microsoft.com/en-us/library/bb397663(v=vs.90).aspx

[2]Extension Methods (C# Programming Guide)
http://msdn.microsoft.com/en-us//library/bb383977.aspx