您的位置:首页 > 其它

.net Event/Delegate Simple Demo

2015-07-24 11:26 375 查看
public class Program

{

private static void Main(string[] args)

{

var demo = new EventSimpleDemo();

string name = "Yin";

demo.ExcutingFun += Hello;

demo.SayHi();

}

public static void Hello(string name, EventArgs e)

{

Console.WriteLine(name + " hello");

}

public static partial class StringDistance

{

public static int GetDamerauLevenshteinDistance(string source, string target)

{

var bounds = new { Height = source.Length + 1, Width = target.Length + 1 };

int[,] matrix = new int[bounds.Height, bounds.Width];

for (int height = 0; height < bounds.Height; height++) { matrix[height, 0] = height; };

for (int width = 0; width < bounds.Width; width++) { matrix[0, width] = width; };

for (int height = 1; height < bounds.Height; height++)

{

for (int width = 1; width < bounds.Width; width++)

{

int cost = (source[height - 1] == target[width - 1]) ? 0 : 1;

int insertion = matrix[height, width - 1] + 1;

int deletion = matrix[height - 1, width] + 1;

int substitution = matrix[height - 1, width - 1] + cost;

int distance = Math.Min(insertion, Math.Min(deletion, substitution));

if (height > 1 && width > 1 && source[height - 1] == target[width - 2] && source[height - 2] == target[width - 1])

{

distance = Math.Min(distance, matrix[height - 2, width - 2] + cost);

}

matrix[height, width] = distance;

}

}

var result = matrix[bounds.Height - 1, bounds.Width - 1];

return result;

}

}

}

public class EventSimpleDemo

{

public void SayHi()

{

var name = "Yin";

ExcutingFun(name, new EventArgs());

}

public event SayHello ExcutingFun;

public delegate void SayHello(string name, EventArgs e);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: