WP7中的扩展

时间:2012-11-23 10:50:50

标签: .net vb.net windows-phone-7

Imports System.Runtime.CompilerServices

Public Module ColorExtension
    <Extension()> _
    Public Function ToColor(ByVal argb As UInteger) As Global.System.Windows.Media.Color
        Return Global.System.Windows.Media.Color.FromArgb(CByte((argb And -16777216) >> &H18), CByte((argb And &HFF0000) >> &H10), CByte((argb And &HFF00) >> 8), CByte(argb And &HFF))
    End Function
End Module



Public Class Test
    Private Sub TestExt()
        Dim Col As System.Windows.Media.Color
        Col = System.Windows.Media.Color.ToColor(100)'<-- Error
        Col.ToColor(100)'<-- Error
    End Sub
End Class

当我使用此代码时,我遇到了这个异常 错误1“ToColor”不是“System.Windows.Media.Color”的成员。 C:... \ ColorExtension.vb

请建议如何开发扩展功能,如此Color扩展功能。

1 个答案:

答案 0 :(得分:1)

  1. 扩展方法可以在类的对象上触发,而不是类本身。
  2. 您的扩展程序设置在UInteger课程上,而不是Color上。你扩展的类型是第一个方法参数的类型。
  3. 您无法将新方法添加到可能会像您尝试的那样触发的类。
  4. 您可以通过两种方式使用扩展方法:

    1. 标准方法调用:ColorExtension.ToColor(100)
    2. 使用 扩展方法语法:100.ToColor()