# C# - delegate practice
使用委派,印出靠左、靠右、等腰置中星號三角形
```csharp=
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
var left = new Triangle();
string result = left.GetTriangle(5, (stars, i, num) => stars);
Console.WriteLine(result);
var right = new Triangle();
string result2 = right.GetTriangle(5, (stars, i, num) => stars.PadLeft(num * 2));
Console.WriteLine(result2);
var isosceles = new Triangle();
string result3 = isosceles.GetTriangle(5, (stars, i, num) => stars.PadLeft(num + i - 1).PadRight((i - 1) * 2 + 1, '*'));
Console.WriteLine(result3);
}
}
public class Triangle
{
public string GetTriangle(int num, Func<string, int, int, string> func)
{
string result = "";
for (int i = 1; i <= num; i++)
{
string stars = new string('*', (i - 1) * 2 + 1);
result += $"{func(stars, i, num)}\n";
}
return result;
}
}
}
```
數學很難算呃呃呃呃 :crying_cat_face: