、ウ、ホ・レ。シ・ク、、マ、ニ、ハ・ヨ・テ・ッ・゙。シ・ッ、ヒトノイテ、ウ、ホ・レ。シ・ク、エ゙、爨マ、ニ、ハ・ヨ・テ・ッ・゙。シ・ッ 、ウ、ホ・レ。シ・ク、livedoor ・ッ・・テ・ラ、ヒトノイテ、ウ、ホ・レ。シ・ク、エ゙、瀝ivedoor ・ッ・・テ・ラ

フワシ。

・ヌ・・イ。シ・ネ

  • ・ヌ・・イ。シ・ネ、ネ、マ・皈ス・テ・ノ、リ、ホサイセネ、シィ、ケニテシ、ハ・ッ・鬣ケ、ヌ、「、。」
  • Delegate・ケ・ニ。シ・ネ・皈・ネ、ヘヘム、キ、ニトオチ、ケ、。」
  • "delegete"、ヒ、マニーサ、ホセケ遑ヨームセ、ケ、。ラ。ヨームヌ、、ケ、。ラ。「フセサ、ホセケ遑ヨツ衙ス。ラ。ヨツ袁ソヘ。ラ、ネ、、、ヲーユフ」、ャ、「、。」

・ヌ・・イ。シ・ネ、ホケスハク

Delegate Sub <・ヌ・・イ。シ・ネフセ>(<・ム・鬣癸シ・ソ1>, <・ム・鬣癸シ・ソ2>, 。ト)
Delegate Function <・ヌ・・イ。シ・ネフセ>(<・ム・鬣癸シ・ソ1>, <・ム・鬣癸シ・ソ2>, 。ト) As <・ヌ。シ・ソキソ>

ホ罍ァ

Delegate Function SampleDelegate(ByVal value As Integer) As Integer

・ヌ・・イ。シ・ネ・ェ・ヨ・ク・ァ・ッ・ネ、ホタクタョ

  • ・ヌ・・イ。シ・ネ、マ・ッ・鬣ケ、ハ、ホ、ヌ。「ヘヘム、ケ、コン、ヒ、マNew・ュ。シ・。シ・ノ、ヌ・ヌ・・イ。シ・ネ・ェ・ヨ・ク・ァ・ッ・ネ、タクタョ、ヌ、ュ、。」
    • ・ヌ・・イ。シ・ネ・ッ・鬣ケ、ホ・ウ・・ケ・ネ・鬣ッ・ソ、ヒ、マ、ス、ホ・ヌ・・イ。シ・ネ、ネエリマ「ノユ、ア、・皈ス・テ・ノ、AddressOf・ュ。シ・。シ・ノ、ノユ、ア、ニサリト熙ケ、。」

ホ罍ァSampleDelegate、ホ・ヌ・・イ。シ・ネ・ェ・ヨ・ク・ァ・ッ・ネMyDelegate、ヒ・皈ス・テ・ノMethod1、エリマ「ノユ、ア、。」

Dim MyDelegate As SampleDelegate = New SampleDelegate(AddressOf Method1)

  • 、ソ、タ、キ。「エリマ「ノユ、ア、、ウ、ネ、ャ、ヌ、ュ、・皈ス・テ・ノ、マ。「・ム・鬣癸シ・ソ、ホ・ヌ。シ・ソキソ、ホハツ、モ、ネフ皃テヘ、ホ・ヌ。シ・ソキソ、ャーテラ、ケ、セケ遉ホ、゚、ヌ、「、。」

ホ罍ァ、ウ、、゙、ヌ、ホホ网ヌ、、、ィ、ミ。「・皈ス・テ・ノMethod1、マシ。、ホ・、・・ソ・ユ・ァ。シ・ケ、ヌ、「、ノャヘラ、ャ、「、。」

Function Method1(ByVal a As Integer) As Integer

AddHandler、サネ、テ、ソ・ヌ・・イ。シ・ネ、ネ・皈ス・テ・ノ、ホエリマ「ノユ、ア

。。AddHander、サネ、テ、ニ・ヌ・・イ。シ・ネ、ネ・皈ス・テ・ノ、エリマ「ノユ、ア、、ウ、ネ、筅ヌ、ュ、。」

ホ罍ァ・オ。シ・ミ。シ・ル。シ・ケ・ソ・、・゙。シ、ヌ、「、System.Timers.Timer、マElapseEventHandler・ヌ・・イ。シ・ネ、サ、ト。」、゙、ソ。「、ウ、ホ・ソ・、・゙。シ、ウォサマ、ケ、、ネ、ュ、マEnabled・ラ・・ム・ニ・」、True。「スェホサ、ケ、、ネ、ュ、マEnabled・ラ・・ム・ニ・」、False、ヒタ゚ト熙ケ、。」

。。0.1ノテ、エ、ネ、ヒイソ、鬢ォ、ホス靉、ケヤ、、、ソ、、セケ遉マシ。、ホ、隍ヲ、ヒ、ケ、。」

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
    Public Sub New()
        。ト
 
        Dim Timer1 As New System.Timers.Timer()
        AddHandler Timer1.Elapsed, New ElapsedEventHandler(AddressOf Method1)
        Timer1.Interval = 100
        Timer1.Enabled = True
    End Sub
 
    Private Sub Method1(ByVal sender As Object, ByVal e As ElapsedEventArgs)
        ' 0.1ノテ、エ、ネ、ヒシツケヤ、オ、、ス靉.
    End Sub

。。、ウ、、マ・ト。シ・・ワ・テ・ッ・ケ、ホ・ウ・・ン。シ・ヘ・・ネ、ォ、餤imer。ハ、ウ、、マSystem.Windows.Forms.Timer。ヒ、・ユ・ゥ。シ・爨ヒナス、ノユ、ア、ニ。「、ス、ホTimer、ホTick・、・ル・・ネサ、ホス靉、ネ、キ、ニ。「0.1ノテ、エ、ネ、ヒシツケヤ、オ、、ス靉、オュスメ、キ。「Interval・ラ・・ム・ニ・」、ヒ100、タ゚ト熙キ、ニ、ェ、ア、ミ。「サ、ソ、隍ヲ、ハニーコ、マシツクス、ヌ、ュ、*1。」

  1
  2
  3
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        ' 0.1ノテ、エ、ネ、ヒシツケヤ、オ、、ス靉.
    End Sub

。。、ハ、ェ。「、ウ、、ヘヘム、キ、ソホ网VB.NET/・ニ・ッ・ヒ・テ・ッ/・「・、・ウ・・「・ヒ・癸シ・キ・逾、ヌセメイ、キ、ニ、、、。ハSystem.Timers.Timer、ヘヘム。ヒ。」。。。

エリマ「ノユ、ア、鬢、ソ・皈ス・テ・ノ、ホクニ、モスミ、キ

  • ・皈ス・テ・ノ、・ヌ・・イ。シ・ネ、ヒエリマ「ノユ、ア、、ネ。「・ヌ・・イ。シ・ネ、トフ、ク、ニ・皈ス・テ・ノ、クニ、モスミ、サ、。」
  • エリマ「ノユ、ア、・皈ス・テ・ノ、ヒ、マ・、・・ケ・ソ・・ケ・皈ス・テ・ノ。「カヲヘュ・皈ス・テ・ノ、ホ、、、コ、、篏ネヘム、ヌ、ュ、。」
    • ・、・・ケ・ソ・・ケ・皈ス・テ・ノ、エリマ「ノユ、ア、セケ遉マ。「・皈ス・テ・ノ、クニ、モスミ、ケ・、・・ケ・ソ・・ケ、カ靆フ、ケ、。」

ホ罍ァ

Method1(<・ム・鬣癸シ・ソ>)

、シツケヤ、ケ、ツ螟、熙ヒ。「

MyDelegate(<・ム・鬣癸シ・ソ>)

、ヌシツケヤ、ヌ、ュ、。」

。。MyDelegate、マ・ェ・ヨ・ク・ァ・ッ・ネ、タ、ャ。「、「、ソ、ォ、筵皈ス・テ・ノ、ホ、隍ヲ、ヒサネ、ィ、。」。。。

ホ罍ァツセ・ッ・鬣ケ、ホ・、・・ケ・ソ・・ケ・皈ス・テ・ノ、ネカヲヘュ・皈ス・テ・ノ、・ヌ・・イ。シ・ネ、ヒエリマ「ノユ、ア、。」

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
Imports System
 
Class TestClass
    Private text_ As String
 
    Public Sub New(ByVal text As String)
        text_ = text
    End Sub
 
    Public Sub Method1()
        Console.writeLine(text_)
    End Sub
 
    Public Shared Sub Method2()
 
    End Sub
End Class
 
Class Sample
    Shared Sub Main()
        Dim instance1 As New TestClass("test")
        Dim action1 As New Action(AddressOf instance1.Method1)
        action1()
 
        Dim instance2 As New TestClass("test")
        Dim action2 As New Action(AddressOf instance2.Method1)
        action2()
 
        Dim action3 As New Action(AddressOf TestClass.Method2)
        action3()
    End Sub
End Class

・ク・ァ・ヘ・・テ・ッ。ヲ・ヌ・・イ。シ・ネ

Action<T>・ヌ・・イ。シ・ネ

。。.NET Framework 2.0、ホ・ッ・鬣ケ・鬣、・ヨ・鬣遙ハSystemフセチーカエヨ。ヒ、ヒ、マ。「シ。、ヒシィ、ケ・ク・ァ・ヘ・・テ・ッ。ヲ・ヌ・・イ。シ・ネ、ホタクタ、ャエ゙、゙、、ニ、、、。」

ーソ、ハ、キ。ヲフ皃テヘ、ハ、キAction
ーソ、「、遙ヲフ皃テヘ、「、Action(T)。「Action(T1, T2)、ハ、ノ
ーソ、ハ、キ。ヲフ皃テヘ、「、Func(TResult)
ーソ、「、遙ヲフ皃テヘ、「、Func(T, TResult)。「Func(T1, T2, TResult)、ハ、ノ

・ヌ・・イ。シ・ネ、ホウ靉ム

・ウ。シ・・ミ・テ・ッス靉

。。・皈ス・テ・ノ、ホ・ム・鬣癸シ・ソ、ヒ・ヌ・・イ。シ・ネ、ナマ、キ、ニ。「、ス、ホ・皈ス・テ・ノ、ホクニ、モスミ、キタ隍ヌ・ヌ・・イ。シ・ネ、シツケヤ、ケ、、ウ、ネ、ャ、ヌ、ュ、。」

ホ罍ァ

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim x As Integer = TripleData(Integer.Parse(TextBox1.Text))
        Label1.Text = "キラササキイフ。ァ " & x
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim x As Integer = HalfData(Integer.Parse(TextBox1.Text))
        Label1.Text = "キラササキイフ。ァ " & x
    End Sub
 
    Private Function TripleData(ByVal n As Integer) As Integer
        Return n * 3
    End Function
 
    Private Function HalfData(ByVal n As Integer) As Integer
        Return n / 2
    End Function
 
End Class

。。、ウ、ホ・ラ・・ー・鬣爨ヌ、マ・ニ・ュ・ケ・ネ・ワ・テ・ッ・ケ、ヒニホマ、キ、ソテヘ、シ隍スミ、キ、ニソサ、ヒハムエケ、ケ、ス靉、ネ。「TripleData()、腥alfData()、ヌニタ、ソテヘ、・鬣ル・、ヒタ゚ト熙ケ、イユス熙ャスナハ」、キ、ニ、、、。」、゙、ソ。「・ニ・ュ・ケ・ネ・ワ・テ・ッ・ケ、ォ、鯏ヘ、シ隍スミ、ケス靉、ネ。「・鬣ル・、ヒキラササキイフ、タ゚ト熙ケ、ス靉、マ1ス靉、ホ、゙、ネ、゙、熙ネケヘ、ィ、、ウ、ネ、ャ、ヌ、ュ、。」 。。、ス、ウ、ヌ。「・ヌ・・イ。シ・ネ、サネ、ヲ、ネシ。、ホ、隍ヲ、ヒス、タオ、ヌ、ュ、。」

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
Public Class Form1
 
    Delegate Function CalcDelegate(ByVal n As Integer) As Integer
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim MyCalc As CalcDelegate = New CalcDelegate(AddressOf TripleData)
        Process(MyCalc)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim MyCalc As CalcDelegate = New CalcDelegate(AddressOf HalfData)
        Process(MyCalc)
    End Sub
 
    Private Sub Process(ByVal callBack As CalcDelegate)
        Dim n As Integer = Integer.Parse(TextBox1.Text)
        Dim x As Integer = callBack(n)
        Label1.Text = "キラササキイフ。ァ " & x
    End Sub
 
    Private Function TripleData(ByVal n As Integer) As Integer
        Return n * 3
    End Function
 
    Private Function HalfData(ByVal n As Integer) As Integer
        Return n / 2
    End Function
 
End Class

。。、ウ、ヲ、ケ、、ウ、ネ、ヌ。「Process()、ホクニ、モスミ、キクオ、マ・ニ・ュ・ケ・ネ・ワ・テ・ッ・ケ、ォ、鬢ホテヘ、ホシ霹タ、茹鬣ル・、ヒキラササキイフ、タ゚ト熙ケ、、ネ、、、テ、ソス靉、ーユシア、ケ、、ウ、ネ、マ、ハ、、。」Process()、ホクニ、モスミ、キクオ、ヌ、「、・ワ・ソ・、ホイ。イシ・、・ル・・ネ、マ。「シォソネ、ャイソ、ホフワナェ、ホ・ワ・ソ・、ヌ、「、、ォ、マヌトーョ、キ、ニ、、、、ソ、癸「キラササ、ヒサネヘム、ケ、・皈ス・テ・ノ、タ、ア、テホ、、タ、ア、ヌススハャ、ヌ、「、。」

ハフ・ケ・・テ・ノ、ォ、鬣ウ・・ネ・。シ・、チ犲、ケ、

ホ罍ァ

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
#Region "・ニ・ュ・ケ・ネ・ワ・テ・ッ・ケ、ヒハクサホニホマタゥク"
    Private Delegate Function InputDelegate(ByVal text As String) As Boolean
 
    Private Function InputTextBox(ByVal text As String) As Boolean
        TextBox1.Text = TextBox1.Text + text + vbCrLf
    End Function
 
    Private Sub invokeTextBox(ByVal dlg As InputDelegate, ByVal text As String)
        TextBox1.Invoke(dlg, New Object() {text})
    End Sub
#End Region

。。ハフ・ケ・・テ・ノ、ォ、鮟ネヘム、ケ、、ネ、ュ、マシ。、シツケヤ、ケ、。」

Dim dlg As New InputDelegate(AddressOf InputTextBox)
invokeTextBox(dlg, "ハクサホ")

・ヌ・・イ。シ・ネ、ネ・ウ。シ・ヌ・」・・ーオャフ

  • ・ヌ・・イ。シ・ネフセ、マPascalキチシー、ヒ、ケ、。」
  • ・、・ル・・ネフセ、マPascalキチシー、ヒ、ケ、。」
  • ・、・ル・・ネ、ヌサネヘムs、、ヲ、ソ、皃ホ・ヌ・・イ。シ・ネ、ヒ、マ"EventHandler"・オ・ユ・」・ッ・ケ、ノユ、ア、。」
    • 、ウ、、ヒ、隍・、・ル・・ネ・マ・・ノ・鬢ャナミマソ、オ、、、ウ、ネ、ャフタウホ、ヒ、ハ、遙「イトニノタュ、ャクセ蚶、、ヲ。」
      • ホ罍ァPublic Delegate Sub MouseOverEventHandler(ByVal sender As Object, ByVal e As MouseEventArgs)
  • ・、・ル・・ネ、ヌサネヘム、ケ、、ソ、皃ホ・ヌ・・イ。シ・ネ、マSub、ヌタクタ、ケ、。」
    • フ皃テヘ、ャ、「、・ヌ・・イ。シ・ネ、・、・ル・・ネ、ヌサネヘム、ケ、、ウ、ネ、マ、ヌ、ュ、ハ、、。」

サイケヘハクク・

  • 。リVisual Basic 2008ニフ遑ル
  • 。リVB.NET・。シ・・ヨ・テ・ッ。ル


*1 、ウ、ホTimer・ッ・鬣ケ、サネ、テ、ソ、ネ、ュ、マハフ、ホ・ソ・、・゙。シ・皈テ・サ。シ・ク、ャネッタク、キ、ソ、ネ、ュ、ヒクニ、モスミ、オ、、ハ、、。」ホ网ィ、ミ。「・ワ・ソ・、ホ・ッ・・テ・ッス靉、ソノテエヨケヤ、テ、ニ、、、ソセケ遑「、ス、ホエヨ、マTimer1_Tickス靉、マシツケヤ、オ、、ハ、、。」、隍テ、ニ。「クキフゥ、ヒ、マニーコ、ャーロ、ハ、