8 EKİM 2009, PERŞEMBE
Nasıl İşlev< kullanıyorsunuz;> ve hareket<&uygulamalar tasarlarken gt;?
Tüm örnekler İşlev<^ bul hakkında edebilirim . ve Eylem<>basitgördüğünüz aşağıdaki gibinasılonlar teknik bir iş ama istiyorum onları görmek için kullanılan örnekler nerede onlar sorunları çözmek, daha önce değil, çözülmüş veya olabilir çözüldü sadece daha karmaşık bir şekilde, yani biliyorum nasıl çalıştıklarını ve görüyorumkısa ve güçlübir . onları anlamak istiyorum , bu yüzden ben ^strong>daha geniş anlamdane tür sorunlar onlar tasarım uygulamaları onları kullanabilirim nasıl çözmek ve.
Ne yolları (desen) İşlev<^ kullanıyorsunuz . ve Eylem<>gerçek sorunları çözmek için?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestFunc8282
{
class Program
{
static void Main(string[] args)
{
//func with delegate
Func<string, string> convert = delegate(string s)
{
return s.ToUpper();
};
//func with lambda
Func<string, string> convert2 = s => s.Substring(3, 10);
//action
Action<int,string> recordIt = (i,title) =>
{
Console.WriteLine("--- {0}:",title);
Console.WriteLine("Adding five to {0}:", i);
Console.WriteLine(i 5);
};
Console.WriteLine(convert("This is the first test."));
Console.WriteLine(convert2("This is the second test."));
recordIt(5, "First one");
recordIt(3, "Second one");
Console.ReadLine();
}
}
}
CEVAP
8 EKİM 2009, PERŞEMBE
Ayrıca yeniden düzenleme geçiş açıklamaları için çok kullanışlılar.
(Basit de olsa) aşağıdaki örnek alalım:
public void Move(int distance, Direction direction)
{
switch (direction)
{
case Direction.Up :
Position.Y = distance;
break;
case Direction.Down:
Position.Y -= distance;
break;
case Direction.Left:
Position.X -= distance;
break;
case Direction.Right:
Position.X = distance;
break;
}
}
Bir Eylem temsilci olarak yeniden Düzenle
static Something()
{
_directionMap = new Dictionary<Direction, Action<Position, int>>
{
{ Direction.Up, (position, distance) => position.Y = distance },
{ Direction.Down, (position, distance) => position.Y -= distance },
{ Direction.Left, (position, distance) => position.X -= distance },
{ Direction.Right, (position, distance) => position.X = distance },
};
}
public void Move(int distance, Direction direction)
{
_directionMap[direction](this.Position, distance);
}
Bunu Paylaş:
Nasıl C işlev işaretçileri çalışır?...
Nasıl ya iPhone 5 ekran çözünürlüğü iç...
Nasıl arama motorları AngularJS uygula...
Nasıl app store üzerinde uygulamalar i...
Nasıl Vim imleç hareket etmeden ekrana...