نمایش نتایج 1 تا 14 از 14

نام تاپیک: Extension Methods

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #10
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,022

    نقل قول: Extension Methods

    این متود نمونه دیگه ای از همون متود پست قبل هست که نامش به EndWhiteSpace تغییر کرده و نوع خروجی اون یک Structure با نام WhitespaceString هست که کاربرد بیشتری نسبت به متود قبلی داره:

    WhitespaceString Structure:

    Structure WhitespaceString
    Sub New(Value As String)
    Me.ValueValue = Value
    End Sub
    Private ValueValue As String
    Public ReadOnly Property Value() As String
    Get
    Return ValueValue
    End Get
    End Property


    Public ReadOnly Property Length(Optional kind As WhitespaseKind = WhitespaseKind.All) As Integer
    Get
    Dim Chars() As Char
    Dim CompChar As Char = vbNullChar
    Dim StartIndex%, Len%
    Dim WhiteSpaces% = 0
    Len = Value.Length
    Select Case kind
    Case WhitespaseKind.All
    Return Len
    Case WhitespaseKind.Space
    CompChar = Chr(32)
    Case WhitespaseKind.vbCr
    CompChar = Chr(13)
    Case WhitespaseKind.vbCrlf
    For i = 0 To Len - 1 Step 2
    If i = Len - 1 Then Exit For
    'Debug.Print("->", Value.Substring(i, 2))
    If Value.Substring(i, 2).CompareTo(Chr(13) & Chr(10)) = 0 Then
    WhiteSpaces += 1
    End If
    Next
    GoTo ReturnLine
    Case WhitespaseKind.vbLf
    CompChar = Chr(10)
    End Select
    Chars = Value.ToCharArray(StartIndex, Len)
    For i = 0 To Chars.Length - 1
    If Chars(i).CompareTo(CompChar) = 0 Then
    WhiteSpaces += 1
    End If
    Next
    ReturnLine:
    Return WhiteSpaces
    End Get
    End Property

    Public Function Contains(chr As String) As Boolean
    Return Value.Contains(chr)
    End Function
    End Structure


    EndWhitespace Extension Method:

    <Extension()> Function EndWhitespace(str As String) As WhitespaceString
    If str.Length = 0 Then Return Nothing
    Dim WhiteSpaceLen As Int16 = str.Length - str.TrimEnd.Length
    Dim StartIndex%, Len%
    StartIndex = (str.Length - WhiteSpaceLen)
    Len = WhiteSpaceLen
    Return New WhitespaceString(str.Substring(StartIndex, Len))
    End Function


    WhitespaceKind Enumeration هم که در پست شماره 8 هست و اینجا برای خصوصیت Length از WhitespaceString Structure بکار گرفته می شه.
    آخرین ویرایش به وسیله ROSTAM2 : یک شنبه 24 مهر 1401 در 08:50 صبح

تاپیک های مشابه

  1. حرفه ای: Extension Methods چیست؟
    نوشته شده توسط ali reza mansoori 2 در بخش VB.NET
    پاسخ: 1
    آخرین پست: چهارشنبه 29 خرداد 1392, 19:35 عصر
  2. متد الحاقی (Extension methods)
    نوشته شده توسط zkazemi در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: شنبه 11 خرداد 1392, 14:50 عصر
  3. extension methods چيست؟
    نوشته شده توسط rahe behtari hast در بخش C#‎‎
    پاسخ: 7
    آخرین پست: شنبه 11 آذر 1391, 19:36 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •