• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Dùng Extension method mà 0 cần .NET 3.5

Các mẹo vặt linh tinh không thuộc các nhóm trên

Moderators: tungcan5diop, QUANITGROBEST

User avatar
Kỳ Nam
Guru
Guru
Posts: 510
Joined: Sun 12/08/2007 8:47 pm
Location: Qui Nhơn
Been thanked: 1 time
Contact:

Dùng Extension method mà 0 cần .NET 3.5

Postby Kỳ Nam » Fri 30/05/2008 7:58 pm

Tác giả: kiếm trên mạng
Mô tả: Dùng Extension method mà 0 cần .NET 3.5


nếu bạn đã dùng VS2008 chắc là đã biết về Extension method

nhưng mặc định , để dùng được nó bạn cần add referencer System.Core.Dll trong .NET 3.5 , vì trong file đó có Global.System.Runtime.CompilerServices.ExtensionAttribute là Attribute cần để tạo Extension method

1 cách rất cùi mía để có thể dùng Extension method mà 0 cần file System.Core.Dll : bạn hãy tự tạo Global.System.Runtime.CompilerServices.ExtensionAttribute , để code ở đâu cũng được miễn sao mình có được class ExtensionAttribute tại đúng namespace Global.System.Runtime.CompilerServices

Code: Select all

  1. Namespace System.Runtime.CompilerServices
  2.     Public Class ExtensionAttribute
  3.         Inherits Attribute
  4.     End Class
  5. End Namespace


dùng nó , sau khi đã có Global.System.Runtime.CompilerServices.ExtensionAttribute

Code: Select all

  1. Public Class Form1
  2.  
  3.     Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
  4.         Dim s As String = "1"
  5.         MessageBox.Show(s.ToInteger())
  6.     End Sub
  7. End Class
  8.  
  9. <System.Runtime.CompilerServices.Extension()> Public Module Module1
  10.     <System.Runtime.CompilerServices.Extension()> Public Function ToInteger(ByVal S As String) As Integer
  11.         Return Integer.Parse(S)
  12.     End Function
  13. End Module


nằm mở tui cũng 0 tưởng tượng được compiler lại có thể tìm attribute dựa trên tên chớ 0 phải type



Return to “[.NET] Mẹo vặt khác”

Who is online

Users browsing this forum: No registered users and 0 guests